PHP-FPM和nginx配置

so_easy發表於2020-09-10

前言

PHP終於是編譯安裝完成了,接下來就是配置PHP-FPMnginx

配置PHP-FPM

1、首先檢視PHP-FPM預設讀取的配置路徑

php-fpm -h
# default: /usr/local/php7.3/

預設讀取的配置檔案在[PREFIX/etc]下。所以最終的配置路徑在/usr/local/php7.3/etc/php-fpm.conf
2、接下來配置fpm。找到預設的php-fpm.conf.default copy到php-fpm.conf
在配置檔案中配置include屬性,如:include=/etc/php-fpm.d/*.conf
include指定下配置各個專案的配置檔案。可參考預設的配置項:

user = nobody
group = nobody
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

最佳化參考:為高效能最佳化 PHP-FPM

3、檢視下預設的配置:搬磚PHP-FPM配置
4、定義自己的PHP-FPM配置
配置include=/etc/php-fpm.d/*.conf指定下的www.conf

user = www
group = www
listen = /usr/local/var/run/www.sock
listen.owner = www
listen.group = www
listen.mode = 0777
; 因為配置的是我本機電腦,所以訪問量也就是我本人而已。所以採用`ondemand`格式最好了!
pm = ondemand
pm.max_children = 30
pm.process_idle_timeout = 10s

預設FPM不支援以sudo許可權啟動,需要增加引數-R才行。可以透過php-fpm -h檢視。啟動FPM只需要執行php-fpm即可。
順便看看php-fpm支援的引數有哪些。

# 讀取指定的配置檔案啟動FPM
php-fpm -c /path/to/php-fpm.conf
# 以守護程式的方式啟動FPM
php-fpm -D
# 不以守護程式的方式啟動FPM
php-fpm -F
# 指定pidfile啟動FPM
php-fpm --pid /path/to/pidfile

可是FPM的程式管理在mac上沒有直接可以操作的命令,當然可以自己編寫指令碼。更方便的是直接使用supervisor管理。操作如下:
(1)關閉FPM預設的以守護程式啟動模式:daemonize = no
(2)配置supervisor

[program:php-fpm]
directory=/usr/local/php7.3/sbin/
command=sudo php-fpm -R
numprocs=1
user=root
autorestart=true 
stdout_logfile=/var/log/supervisord/php-fpm.log
loglevel=info

(3)以後就可以方便的透過supervisor的web管理該程式了。
PHP-FPM和nginx配置

配置nginx

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章