PHP-FPM在Linux上自动重启的实现方法

作者:技术拾光

时间:2026-06-05

浏览:571

在Linux环境中,利用systemd托管PHP-FPM进程可实现自动重启。创建服务文件并配置ExecStart路径及版本号,启用服务并设置开机自启后,systemd默认会在进程异常退出时自动拉起,无需额外配置。此方法可有效提升服务稳定性,是生产环境中的常用运维方式。

文章目录

在 Linux 环境下,PHP-FPM 的稳定性直接关系到业务服务的可用性。如果它意外设掉,手动重启显然不是长久之计。利用 systemd 来托管 PHP-FPM 进程,让它实现自动重启,是目前最主流也最稳妥的做法。下面就把这套配置流程拆解开,一步步说清楚。

PHP-FPM在Linux上自动重启的实现方法

第一步:创建 systemd 服务文件

用你习惯的文本编辑器(比如 nano 或 vim)新建一个服务文件。这里我们把它命名为 php-fpm.service:

sudo nano /etc/systemd/system/php-fpm.service

第二步:填入服务配置

把下面这段配置粘贴进去。注意里面的路径和版本号需要根据你实际安装的 PHP 版本做调整。

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/run/php-fpm/php-fpm.pid
ExecStart=/usr/sbin/php-fpm7.4 --nodaemonize --fpm-config /etc/php/7.4/fpm/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

关键在 ExecStart 这一行。如果你的 PHP 版本是 8.0,那就要写成:

ExecStart=/usr/sbin/php-fpm8.0 --nodaemonize --fpm-config /etc/php/8.0/fpm/php-fpm.conf

其他版本类推,路径和版本号保持一致即可。

第三步:保存并启用服务

文件创建好后,先让 systemd 重新加载配置文件,让它知道我们新加了一个服务:

sudo systemctl daemon-reload

然后启动 PHP-FPM 服务:

sudo systemctl start php-fpm.service

接着设置开机自启,保证每次服务器重启后 PHP-FPM 都能自动跑起来:

sudo systemctl enable php-fpm.service

第四步:验证服务状态

用下面这条命令看看服务是否正常运行:

sudo systemctl status php-fpm.service

如果显示 active (running),说明配置成功。让 service 自动重启的特性已经隐含在 systemd 的默认行为中——只要进程因异常退出,systemd 会在几秒内自动拉起它,无需额外配置。

手动管理:重启和重载

日常运维中偶尔需要手动干预。比如更新配置后,可以用优雅重启(不中断当前请求)来让新配置生效:

sudo systemctl reload php-fpm.service

如果只是需要彻底重启服务(比如升级 PHP 版本),直接:

sudo systemctl restart php-fpm.service

到这里,整个自动重启机制就搭建好了。以后只要 PHP-FPM 意外退出,systemd 会自动把它再拉起来,省心很多。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章