一个懒癌患者的自言自语



一台服务器配置多个php-fpm主进程池

以centos7为例,一般php-fpm配置文件都存放在/etc/php-fpm.d/www.conf

1.复制配置文件

cd /etc/php-fpm.d/
cp www.conf www2.conf

2.修改www2.conf

修改进程池名称,将www修改为别的名字,比如www2,修改各种日志记录文件保存路径,方便区分不同的进程池日志

3.nginx配置负载,在http标签下添加如下配置

upstream myphp{
        server unix:/var/run/php-fpm/php7.2-fpm.sock;
        server unix:/var/run/php-fpm/php7.2-fpm2.sock;
}

upstream myphp{
        server 127.0.0.1:9000;
        server 127.0.0.1:9001;
}

根据php-fpm的具体监听配置来决定,然后修改nginx php转发配置,将

location ~ \.php(.*)$ {
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #       fastcgi_param PATH_INFO                $fastcgi_script_name;
        #       With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php-fpm/php7.2-fpm.sock;
        #       With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
}

改为

location ~ \.php(.*)$ {
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #       fastcgi_param PATH_INFO                $fastcgi_script_name;
               fastcgi_pass myphp;
}

然后重启nginx和php-fpm就行。

如果是需要配置多个主进程各自启动,只需要将主进程启动文件也复制一份修改相关配置就就可实现,nginx只需要监听不同进程池端口或者sock就ok,通过多个主进程方式也可实现配置多个不同的php-fpm版本,达到一台服务器多个不同php版本的目的

About ME

about me

kevin

一个在it道路上蹒跚学步的人

心有多大,舞台就有多大,一直奔跑在自己的路上!

Contact ME