PHP 怎么PHP 重启

wen PHP项目 1

本文目录导读:

PHP 怎么PHP 重启

  1. 使用 systemctl(主流 Linux 发行版,如 CentOS 7+、Ubuntu 16+、Debian 8+)
  2. 使用 service 命令(旧版系统)
  3. 使用信号的平滑重启(无需中断服务)
  4. 在不同操作系统上的特定命令
  5. 使用 kill 命令手动控制(不推荐,除非没有 systemd)
  6. 常见问题排查

在 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 秒),生产环境建议使用 reloadkill -USR2 平滑重启。

抱歉,评论功能暂时关闭!