下面是关于“PHP-FPM 的管理和配置详解”的完整攻略:
什么是 PHP-FPM?
PHP-FPM(FastCGI Process Manager)是 PHP 官方推荐的、用于管理和调度 PHP FastCGI 进程的工具。它可以更好地管理和控制 PHP 进程,提高 PHP 应用的性能和安全性。
PHP-FPM 的管理
启动和停止 PHP-FPM
启动和停止 PHP-FPM 进程可以使用以下命令:
# 启动 PHP-FPM
sudo systemctl start php-fpm
# 关闭 PHP-FPM
sudo systemctl stop php-fpm
# 重启 PHP-FPM
sudo systemctl restart php-fpm
监控 PHP-FPM 进程状态
可以使用 systemctl status
命令来查看 PHP-FPM 进程的状态:
sudo systemctl status php-fpm
控制 PHP-FPM 进程
可以使用 php-fpm
命令来控制 PHP-FPM 进程。例如,可以使用以下命令重新加载 PHP-FPM 进程:
sudo php-fpm -t && sudo service php-fpm reload
PHP-FPM 的配置
PHP-FPM 的主要配置文件位于 /etc/php/fpm/
目录下。其主要配置文件为 php-fpm.conf
和 www.conf
。
php-fpm.conf 配置文件
该配置文件包含了 PHP-FPM 的基本配置选项。
以下是示例配置文件的一部分:
[global]
; 全局配置项
[www]
; 如果没有配置全局设置,则将使用这些配置
user = www-data
group = www-data
listen = /var/run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
该文件中的 [global]
段包含了一些全局配置选项,例如进程优先级、日志文件配置等。
示例中的 [www]
段包含了针对 www
进程池的配置选项。例如,可以通过 user
和 group
选项指定该进程池所使用的用户和组;通过 listen
选项指定 PHP-FPM 与 Web 服务器通信的方式和地址;通过 listen.owner
、listen.group
和 listen.mode
选项指定这个地址的所有者、组和权限。
www.conf 配置文件
该文件包含了 PHP-FPM 的进程池配置选项。
以下是示例配置文件的一部分:
[www]
; 进程池名称
user = www-data
group = www-data
listen = /var/run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.status_path = /fpm-status
ping.path = /fpm-ping
该文件中的每个 [www]
段对应着一个名为 www
的进程池。例如,可以通过 user
和 group
选项指定该进程池的用户和组;通过 listen
选项指定该进程池所使用的地址和通信方式。
pm
系列配置项用于调度进程池中的 PHP 进程。例如,pm.max_children
选项用于指定进程池中最多可启动的 PHP 子进程数量;pm.start_servers
选项用于指定 PHP 进程池初始启动的子进程数量等等。
最后,pm.status_path
、ping.path
选项等可以用于控制 PHP-FPM 进程内的管理员界面和健康检查界面的 URL。
示例说明
假设我们的网站使用 PHP 脚本编写,请问:
- 如何为 PHP-FPM 设置自己的用户和组?
- 如何为 PHP-FPM 设置自己的监听地址和方式?
回答:
- 设置 PHP-FPM 的用户和组
在 /etc/php/fpm/pool.d
目录下,打开或新建一个以 .conf
结尾的(如 myapp.conf
)文件,在其中添加以下配置:
[myapp]
user = myapp-user
group = myapp-group
这里,我们新建一个 [myapp]
的进程池,并指定了 PHP-FPM 所使用的用户和组。
- 设置 PHP-FPM 的监听地址和方式
在 /etc/php/fpm/pool.d
目录下,打开或新建一个以 .conf
结尾的(如 myapp.conf
)文件,在其中添加以下配置:
[myapp]
listen = 127.0.0.1:9000
这里,我们新建一个 [myapp]
的进程池,并指定了 PHP-FPM 所要绑定的 IP 地址和端口号。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP-FPM 的管理和配置详解 - Python技术站