Nginx整合PHP

安装PHP

从网站 http://rpms.remirepo.net/enterprise/ 找到系统对应的rpm

现在是CentOS8,这里使用 http://rpms.remirepo.net/enterprise/remi-release-8.rpm

sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

查看是否安装成功:

sudo yum repolist

显示有 remi-modular 和 remi-safe 就表示安装成功了!

查看可以安装的版本:

sudo dnf module list php

找到需要安装的版本,并记下Stream列对应的名称,比如8.0版本就有两个选择 8.0 和 remi-8.0

设定PHP版本:

sudo dnf module reset php
sudo dnf module enable php:remi-8.1

安装PHP

sudo dnf -y install php
sudo dnf -y install php php-gd php-mysqlnd

其中后面几个模块是WordPress所需要的,可以酌情安装。

配置php-fpm,配置文件 /etc/php-fpm.d/www.conf,调整如下行的设置,与nginx启动用户一致:

user = username
group = group

启动php-fpm

sudo systemctl enable --now php-fpm

配置Nginx

以 WordPress 为例

设置nginx启动用户和组,配置文件 /etc/nginx/nginx.conf

# user nginx; 这个是默认用户,如果这里不调整php-fpm的配置就要设置成nginx
user username group;

在nginx的配置目录下 /etc/nginx/conf.d/ 新建一个配置文件 wordpress.conf

server {
        listen      2000;
        server_name wordpress.site.com;

        location / {
                root   /home/wordpress;
                index  index.php index.html index.htm;
                autoindex off;
                autoindex_exact_size off;
                autoindex_localtime on;
        }

        location ~ \.php$ {
                try_files      $uri = 404;
                root           /home/wordpress;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
                include        fastcgi_params;
        }
}

WordPress里的文件也要设置为同样的用户。

chown -R username:group /home/wordpress

可能遇到的问题

Nginx 和 php-fpm 一定要设置相同的用户名和组,不然会文件权限不足。

下面这个问题的原因是路径上的目录没有访问权限

open() "/var/lib/nginx/tmp/fastcgi/2/00/0000000002" failed (13: Permission denied)

把 fastcgi 目录的权限设置为755就好了。

此条目发表在服务器分类目录,贴了, 标签。将固定链接加入收藏夹。