PHP-FPM 使用(含多站点多端口)

PHP-FPM 使用

PHP-FPM

是在 Linux 环境下用来管理调度 PHP 执行的调度器,源码安装时会自动安装,PHP 安装可参考Centos 下安装 PHP (新)

查看版本

# php-fpm -v

启动

# php-fpm -c php.ini -y php-fpm.conf

重启

# php-fpm restart
或
# kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

扩展

# /etc/init.d/php-fpm { start/stop/restart/reload... }
或
# /service php-fpm { start/stop/restart/reload... }

service 命令就是调用 /etc/init.d 目录下的脚本文件,这种方式其实就是对 kill 方式的一种封装

信号

信号 作用
INT 立即终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 重启(平滑重载所有 worker 进程并重新载入配置和二进制模块)

如何在同一台主机下运行多个 php 配置监听多个端口

场景有 wwwroot/a.com 和 wwwroot/b.com,a.com 使用 9001 端口,b.com 使用 9002 端口。方法是

  • 建立多个配置文件
# cd /usr/local/php/etc/php-fpm.d
# cp www.conf a.com.conf
# vi a.com.conf

修改进程池名,重名的话后面载入的配置会覆盖掉同名的
[www] 修改为 [a.com] 

修改使用的用户名和组
user = nginx(与 nginx.con 相同)
group = nginx

修改侦听
listen = 127.0.0.1:9001

按相同方式,再复制出一个 b.com.conf

  • 命令方式载入多个配置
# /etc/init.d/php-fpm restart --config-php /usr/local/php/etc/php-fpm.d/a.com.conf
# /etc/init.d/php-fpm restart --config-php /usr/local/php/etc/php-fpm.d/b.com.conf

查看一下
# ps aux|grep php-fpm

输出
# root     24425  0.0  0.1 151364  4892 ?        Ss   14:14   0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
# nginx    24426  0.0  0.1 151348  4448 ?        S    14:14   0:00 php-fpm: pool a.com
# nginx    24427  0.0  0.1 151348  4448 ?        S    14:14   0:00 php-fpm: pool a.com
# nginx    24428  0.0  0.1 151348  5380 ?        S    14:14   0:00 php-fpm: pool b.com
# nginx    24429  0.0  0.1 151348  5380 ?        S    14:14   0:00 php-fpm: pool b.com
# nginx    24430  0.0  0.1 151348  5380 ?        S    14:14   0:00 php-fpm: pool www
# nginx    24431  0.0  0.1 151348  5380 ?        S    14:14   0:00 php-fpm: pool www
# root     24433  0.0  0.0 112712   968 pts/0    S+   14:17   0:00 grep --color=auto php-fpm

可以看到 pool 后面有三个地址,a.com、b.com是自建的两个配置,www 是 www.conf 默认的

参考

多个项目公用php的一个端口好还是一个项目使用一个php端口?
linux启动多个php-fpm
PHP-FPM多实例配置及nginx对应配置

posted @ 2019-12-18 15:01  试试手气  阅读(2222)  评论(0编辑  收藏  举报