本文目录导读:

- 使用 PHP-FPM(最常见,如 Nginx + PHP-FPM)
- 使用 Apache + mod_php(Apache 模块形式)
- 使用 Nginx + CGI/FastCGI(较少见)
- PHP 内置开发服务器(
php -S) - 特殊情况:有些配置可以动态修改
- 快速确认是否需要重启
对于 PHP 项目,是否需要在修改 php.ini 后重启服务,取决于你的 PHP 运行模式:
使用 PHP-FPM(最常见,如 Nginx + PHP-FPM)
需要重启或重载 PHP-FPM 进程。
因为 PHP-FPM 是一个独立的进程管理器,php.ini 只在启动时加载一次。
# 优雅重载(推荐) sudo systemctl reload php8.x-fpm # php8.1-fpm # 或重启 sudo systemctl restart php8.x-fpm
使用 Apache + mod_php(Apache 模块形式)
需要重启 Apache 服务。
因为 PHP 作为 Apache 的模块运行,php.ini 的读取时机是 Apache 启动时。
sudo systemctl reload httpd # 或 apache2 # 或 sudo systemctl restart httpd
使用 Nginx + CGI/FastCGI(较少见)
通常需要重启对应的 PHP-CGI 进程或 PHP-FPM。
PHP 内置开发服务器(php -S)
不需要重启。 内置服务器每次请求都会重新读取配置,修改后立即生效。
特殊情况:有些配置可以动态修改
虽然 php.ini 需要重启,但部分 PHP 配置参数可以通过以下方式无需重启:
ini_set()函数:在 PHP 代码中动态设置(仅作用于当前脚本)。.user.ini文件(仅 PHP-FPM 模式):在项目根目录创建.user.ini,无需重启,PHP 会按请求频率自动扫描(通常有 300 秒缓存,可通过user_ini.cache_ttl调整)。
快速确认是否需要重启
# 检查 PHP 配置文件加载路径 php --ini # 查看当前 PHP-FPM 进程数 ps aux | grep php-fpm
- 生产环境(Nginx+PHP-FPM 或 Apache):修改
php.ini后 必须重启/重载 对应服务。 - 开发/测试环境:建议重启,避免意外;但使用内置服务器时可立即生效。
如果你不确定运行模式,可以执行 phpinfo() 查看 Server API 字段,如果是 FPM/FastCGI 则需要重启。