目录
当CentOS8系统配置好Nginx服务和MySQL服务后,接下来可以配置PHP环境了。
CentOS8系统配置Nginx服务可参考我的文章:CentOS8下配置Nginx服务器详细教程
CentOS8系统配置MySQL8服务可参考我的文章:CentOS8装配MySQL8详细教程(亲测图文版)
当Nginx和MySQL服务安装好后,其实很简单。CentOS8系统已经存在PHP资源,直接安装即可。
1.检查是否已安装PHP
rpm -qa | grep php
2.卸载PHP
如果检测到已安装PHP环境,则卸载。
yum remove -y "php*"
3.安装PHP
yum install -y php
当安装好PHP环境后,会自动安装PHP-FPM模块及相应配置。Nginx安装结束后,yum默认安装位置在/etc/nginx中。配置文件位于:/etc/nginx/nginx.conf,文件内容如下:
Nginx默认访问的端口为80端口,默认访问路径为/usr/share/nginx/html,可以根据自己需求进行修改。
4.启动Nginx服务
systemctl restart nginx
5.测试PHP环境
创建文件/usr/share/nginx/html/index.php,写入内容 “<?php phpinfo(); ?>”。
touch /usr/share/nginx/html/index.php
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/index.php
如果出现如下界面,PHP环境配置成功
6.PHP-FPM介绍
Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
早期的webserver只处理html等静态文件,后来出现了动态语言,webserver不能处理了,只能交给一些语言解释器,比如JVM、PHP解释器等。那么问题来了,webserver如何与各种语言解释器通信呢?此时出现了CGI协议,所有语言均遵循CGI协议,实现了各种语言与webserver的通信。
但是问题又来了,一个web请求,webserver需要对应一个CGI进程,100个请求需要100个CGI进程,因此,需要反复的创建进程、kill进程,极大的浪费资源。对CGI进一步改进,出现了FAST-CGI,创建一个进程后,该进程可以处理多个请求,提高了服务效率。
PHP-FPM全称为php-Fastcgi Process Manager,是FAST-CGI的PHP实现,同时可以对进行进行管理。PHP-FPM中共有Master和Worker两种进程,Master 进程负责监听端口,结构webserver的请求,worker进程有多个,每个worker进程对应一个PHP解释器,用来执行php程序。
7.配置PHP-FPM转发
按照好Nginx后,Nginx服务器使用默认配置访问PHP,如果需要对php访问进行设置,需要修改Nginx服务对应的nginx.conf文件(该文件不同的安装方式、不同的操作系统,路径不一样,可以使用whereis nginx.conf进行查找)。
本文只介绍php访问路径的修改,并非真正的服务转发。
如图所示,主要介绍nginx.conf文件中的server部分,listen为访问监听端口,servername为默认访问路径(IP地址或域名+端口号),root为访问文件存放位置,如果想更换PHP存放位置,修改这个地方就可以了。
另:如果想让Nginx实现负载均衡,访问多个服务器,可创建多个server,为每个server设置不同的监听端口、访问路径及转发即可,因本文没有多个服务器,只做简单介绍,如需实现负载均衡,可自行查阅相关资料。