前言
之前本站的程序是部署在docker容器里,然后使用物理机的Nginx转发请求到docker中的Apache2,现在改为直接将应用部署到Nginx中,不再做一层额外转发,因此需要配置Nginx支持PHP。CentOS默认源中只有PHP5.4,但由于zblog不支持PHP5.4,故本文使用的是PHP7.4。Nginx直接使用源里默认的很简单,这里不再赘述过程。本文主要讲解PHP7.4的安装和配置。
系统:CentOS 7
Nginx: 1.20.1
PHP: 7.4
一、添加EPEL和REMI存储库
运行以下命令以添加所需的存储库:
sudo yum install epel-release
sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
二、在CentOS 7上安装PHP7.4版本
我们现在可以启用PHP 7.4 Remi存储库并在CentOS 7上安装PHP 7.4:
sudo yum -y install yum-utils (可不用)
yum repolist all | grep php
sudo yum-config-manager --enable remi-php74
在CentOS 7上安装PHP 7.4 以及扩展:
sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis php-calendar php-bcmath php-sockets php-session php-snmp
安装完毕后确认PHP的版本,应该是7.4:
php -v
如果要查看启用的模块,请运行:
php --m
三、配置PHP7.4支持Nginx
1. 编辑PHP的配置文件,/etc/php.ini,注意去掉分号注释:
vim /etc/php.ini
将
;cgi.fix_pathinfo=1
改为
cgi.fix_pathinfo=0
2. 编辑PHP-FPM配置文件:
vim /etc/php-fpm.d/www.conf
将
user = apache group = apache
改为
user = nginx group = nginx
前提是已经创建了nginx用户和nginx组。如果没有创建方法:
groupadd -r nginx useradd -r -g nginx nginx
查看用户
cat /etc/passwd
查看用户组
cat /etc/group
3. 启动PHP—FPM
systemctl start php-fpm
4. 设置开机启动
systemctl enable php-fpm
四、配置Nginx支持PHP7.4解析
1. 进入文件夹/etc/nginx/default.d/ ,新建一个文件php.conf,内容如下:
location ~ .php$ { try_files $uri = 404; root /var/www/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
值得注意的是,我这里root对应的路径是/var/www/html,这是因为我之前的应用部署在Apache,默认路径就在这,所以这里直接设置根路径在这里。读者应根据自己的情况设置这一块。
2. 编辑/etc/nginx/nginx.conf,配置:
location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } root /var/www/html/; index index.php; #proxy_pass http://zblog; }
3. 保存退出,重启或重新加载nginx
重启:
systemctl restart nginx
或者:
nginx -t nginx -s reload
五、设置网站目录权限
nginx使用nginx用户运行,需要有相应的权限才能创建或修改网站应用下的文件:
sudo chown nginx:nginx -R /var/www/html
最新留言