nginx整合php
‘壹’ nginx中php设置自启动,部署ngxin+php配置文件
在Centos 7环境中安装并设置PHP 8.0的开机自启动,首先确保PHP-FPM的配置。
为了使PHP-FPM在系统启动时自动运行,需要编辑启动脚本。打开rc.local配置文件:
root@lx:~# vim /etc/rc.d/rc.local
在rc.local中添加以下行,以启动PHP-FPM服务:
sudo systemctl enable php-fpm.service
然后,确认php-fpm是否已被添加到开机启动列表中:
root@lx:~# chkconfig --list
查看结果,确认php-fpm服务的启动级别是否为2(运行级别为3时启动,对应多用户模式)或更高。
接下来,配置Nginx以处理PHP请求。打开Nginx的配置文件,通常是/etc/nginx/nginx.conf 或者你的虚拟主机配置文件(如/etc/nginx/conf.d/yoursite.conf),确保你的location块中包含如下内容:
location ~ \.php$ {
fastcgi_pass php-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
这将允许Nginx通过PHP-FPM处理.php文件。记得重启Nginx服务以应用更改:
sudo systemctl restart nginx
至此,Centos 7上已经成功安装PHP 8.0并配置了开机自启动,Nginx也已设置解析PHP请求。现在,每当系统启动时,PHP-FPM和Nginx都将协同工作。
‘贰’ NGINX+PHP好,还是NGINX+APACHE+PHP好
如果单台服务器的话,NGINX+APACHE+PHP
纯粹多此一举,多了一次请求转发,效率肯定低,而且现在FPM已经足够稳定。完全没必要。
只有多台服务器集群的话,apache+nginx反代才有意义.NGINX+APACHE+PHP
这种架构存在的原因除了apache出现比较早外,还因为当时FPM不如mole模式稳定。
不见得。Nginx在前面实现动静分离,静态内容由Nginx负责,动态请求则交给后面的PHP应用服务器Apache(libphp5.so)处理。Apache专心处理PHP,这不挺好吗?
Nginx+PHP-FPM相对Nginx+Apache(libphp5.so)来说,PHP-FPM更灵活,在php-fpm.conf里可以配置监听不同端口的多个pool,每个pool又可以自由配置PHP-FPM工人进程数pm.max_children,一个pool里的工人进程繁忙不会影响到另一个pool。在Nginx里可以配置应用的不同部分使用不同的pool,而且一台服务器上可以运行多个版本的PHP-FPM,借助Nginx的upstream功能,PHP-FPM非常容易横向扩展。
新浪微博和网络贴吧都在使用Nginx+PHP-FPM的架构,PHP-FPM已经足够稳定。
ab同样并发数压力测试ZF下RPS(请求每秒)对比:
‘叁’ 如何架设Nginx+Php Web服务器
由于每个过程较繁琐,所以这里说说具体步骤,每个步骤的具体内容可以网络搜索。
安装步骤
一、 编译安装PHP5.2.9所需的支持库
二、编译安装MySQL 5.1.34扩展库
三、编译安装PHP(FastCGI模式)
四、修改php-fpm配置文件
五、创建www用户组及www用户
六、编译安装Nginx
七、创建fcgi.conf文件
八、编辑Nginx配置文件
九、配置开机自动启动Nginx + PHP
十、优化Linux内核参数