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對應配置