在 Linux 系统中,您可以将 PHP-FPM 配置为服务,以便更方便地管理其启动、停止和重启。以下是在常见的 Linux 发行版(如 CentOS 和 Ubuntu)中配置 PHP-FPM 为服务的步骤。
1. 安装 PHP-FPM
首先,确保您已安装 PHP-FPM。根据您的 Linux 发行版,您可以使用以下命令进行安装。
CentOS
sudo yum install php-fpm
Ubuntu
sudo apt update
sudo apt install php-fpm
2. 配置 PHP-FPM
在安装完成后,您需要配置 PHP-FPM。编辑配置文件,通常位于 /etc/php-fpm.d/www.conf
或 /etc/php/7.x/fpm/pool.d/www.conf
(具体路径可能因 PHP 版本和发行版而异)。
sudo nano /etc/php-fpm.d/www.conf # CentOS
或
sudo nano /etc/php/7.x/fpm/pool.d/www.conf # Ubuntu
确保以下配置项设置正确:
listen = 127.0.0.1:9000 # 配置 PHP-FPM 监听的地址和端口
3. 创建 Systemd 服务文件
CentOS / Ubuntu
您可以创建一个 Systemd 服务文件来管理 PHP-FPM。通常,该文件位于 /etc/systemd/system/
。
sudo nano /etc/systemd/system/php-fpm.service
在文件中添加以下内容:
[Unit]
Description=The PHP 7.x FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/run/php/php7.x-fpm.pid # 根据您的 PHP 版本修改
ExecStart=/usr/sbin/php-fpm7.x --nodaemonize # 根据您的 PHP 版本修改
ExecReload=/bin/kill -USR2 $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
注意事项
- 确保
ExecStart
中的 PHP-FPM 路径和版本号正确。 - 对于 PHP 7.4,通常是
php-fpm7.4
;对于 PHP 8.0,则是php-fpm8.0
。
4. 重新加载 Systemd
创建或修改服务文件后,您需要重新加载 Systemd,以便它识别新服务。
sudo systemctl daemon-reload
5. 启动 PHP-FPM 服务
使用以下命令启动 PHP-FPM 服务:
sudo systemctl start php-fpm
6. 设置开机自启
如果您希望 PHP-FPM 在系统启动时自动启动,可以使用以下命令:
sudo systemctl enable php-fpm
7. 管理 PHP-FPM 服务
您可以使用以下命令管理 PHP-FPM 服务:
检查状态:
sudo systemctl status php-fpm
停止服务:
sudo systemctl stop php-fpm
重启服务:
sudo systemctl restart php-fpm
重新加载配置:
sudo systemctl reload php-fpm
8. 配置防火墙(可选)
如果您使用的是防火墙(如 firewalld
或 ufw
),确保允许 PHP-FPM 的监听端口(默认是 9000)。
CentOS(firewalld)
sudo firewall-cmd --add-port=9000/tcp --permanent
sudo firewall-cmd --reload
Ubuntu (ufw)
sudo ufw allow 9000/tcp