本文目录导读:

- 使用 systemctl(主流 Linux 发行版,如 CentOS 7+、Ubuntu 16+、Debian 8+)
- 使用 service 命令(旧版系统)
- 使用信号的平滑重启(无需中断服务)
- 在不同操作系统上的特定命令
- 使用 kill 命令手动控制(不推荐,除非没有 systemd)
- 常见问题排查
在 PHP 开发和运维中,“重启 PHP”通常指重启 PHP-FPM(PHP FastCGI Process Manager)进程,因为 PHP-FPM 是处理动态请求的核心服务,以下是针对不同环境和场景的重启方法:
使用 systemctl(主流 Linux 发行版,如 CentOS 7+、Ubuntu 16+、Debian 8+)
# 重启 PHP-FPM(具体服务名可能不同,常见版本) sudo systemctl restart php7.4-fpm # PHP 7.4 sudo systemctl restart php8.1-fpm # PHP 8.1 sudo systemctl restart php8.0-fpm # PHP 8.0 # 或者通用命令(根据 PHP 版本) sudo systemctl restart php*-fpm # 查看状态 sudo systemctl status php*-fpm
使用 service 命令(旧版系统)
# 重启 PHP-FPM 服务 sudo service php7.4-fpm restart sudo service php8.1-fpm restart # 如果使用 php-fpm 直接运行(较少见) sudo service php-fpm restart
使用信号的平滑重启(无需中断服务)
PHP-FPM 支持两种重启方式:
- 优雅重启:处理完当前请求后再重启子进程
- 强制重启:立即杀掉所有子进程
# 方法1:使用 kill -USR2 信号(平滑重启主进程) sudo kill -USR2 $(cat /run/php/php7.4-fpm.pid) # 方法2:使用 reload 命令(推荐) sudo systemctl reload php7.4-fpm # 或 sudo service php7.4-fpm reload
在不同操作系统上的特定命令
Ubuntu/Debian(基于 apt)
sudo systemctl restart php7.4-fpm # 或旧版 sudo service php7.4-fpm restart
CentOS/RHEL(基于 yum/dnf)
# 查找已安装的 PHP-FPM 包 sudo systemctl list-units | grep php-fpm # 重启 sudo systemctl restart php-fpm
macOS(Homebrew 安装)
# 重启 Homebrew 安装的 PHP-FPM brew services restart php@7.4 brew services restart php@8.1
Docker 容器内
# 在容器内重启 PHP-FPM docker exec -it <container_name> service php8.1-fpm restart # 或使用 supervisor 管理 docker exec -it <container_name> supervisorctl restart php-fpm
使用 kill 命令手动控制(不推荐,除非没有 systemd)
# 找到 PHP-FPM 主进程 PID
ps aux | grep php-fpm | grep -v grep | head -n 1 | awk '{print $2}'
# 发送信号
sudo kill -INT <PID> # 立即关闭
sudo kill -USR2 <PID> # 平滑重启
sudo kill -QUIT <PID> # 优雅关闭
常见问题排查
如果重启失败:
# 检查 PHP-FPM 是否已安装 which php-fpm php-fpm -v # 查看错误日志 tail -f /var/log/php*-fpm.log tail -f /var/log/php*-error.log # 检查配置文件语法 php-fpm -t
重启后立即生效的场景
- 修改了
php.ini配置 - 修改了
pool.d/www.conf配置 - 代码文件修改(通常不需要重启,因为 PHP 是解释执行)
- 添加了新的 PHP 扩展(需要重启)
| 环境 | 推荐命令 |
|---|---|
| systemd 系统 | sudo systemctl restart php*-fpm |
| 传统 SysV | sudo service php*-fpm restart |
| 平滑重启 | sudo systemctl reload php*-fpm |
| macOS | brew services restart php@* |
| Docker | docker exec -it <容器名> service php*-fpm restart |
注意:重启 PHP-FPM 会临时中断服务(<1 秒),生产环境建议使用 reload 或 kill -USR2 平滑重启。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播