在 Ubuntu 上,PHP 配置要生效,一般取决于你改的是哪一类配置,以及你用的是 哪个 PHP 版本 和 哪种运行方式(CLI / FPM / Apache)。下面按常见情况说明。
一、确认 PHP 版本
先确认你正在使用的 PHP 版本:
php -v
或者查看所有已安装版本:
ls /etc/php/
示例:
/etc/php/7.4/
/etc/php/8.1/
/etc/php/8.2/
二、PHP 配置文件位置
1️⃣ CLI(命令行 PHP)
配置文件路径通常是:
/etc/php/{版本}/cli/php.ini
查看当前生效的配置:
php --ini
✅ 生效方式
# 修改后无需重启,直接生效(下次执行 php 命令时)
2️⃣ PHP-FPM(Nginx 最常用)
配置文件路径:
/etc/php/{版本}/fpm/php.ini
/etc/php/{版本}/fpm/pool.d/www.conf
✅ 必须重启 PHP-FPM 才能生效
sudo systemctl restart php{版本}-fpm
例如 PHP 8.1:
sudo systemctl restart php8.1-fpm
验证状态:
systemctl status php8.1-fpm
3️⃣ Apache + mod_php
配置文件路径:
/etc/php/{版本}/apache2/php.ini
✅ 重启 Apache
sudo systemctl restart apache2
三、确认修改已生效
方法 1:使用 phpinfo(Web 环境)
<?php
phpinfo();
访问页面,查看:
Loaded Configuration File- 对应配置项是否变化
⚠️ 一定要看 Web 访问结果,而不是 CLI
方法 2:CLI 查看
php -i | grep "upload_max_filesize"
(CLI 和 FPM 的值可能不同)
四、常见修改不生效的原因
❌ 1. 改错 php.ini
不同 SAPI 使用不同配置文件:
- CLI:cli/php.ini
- FPM:fpm/php.ini
- Apache:apache2/php.ini
✅ 解决:
php --ini
或
phpinfo()
❌ 2. 忘记重启 PHP-FPM / Apache
| 环境 | 是否需重启 |
|---|---|
| CLI | ❌ |
| FPM | ✅ |
| Apache | ✅ |
❌ 3. 被 pool 配置覆盖
www.conf 中可能有:
php_admin_value[upload_max_filesize] = 2M
✅ 解决:
- 注释或合并到
php.ini - 重启 FPM
❌ 4. 配置写错位置
比如把 extension=mysqli 写进了 [PHP] 之外
五、快速排错流程(推荐)
# 1. 找到生效的 php.ini
php --ini
# 或浏览器 phpinfo()
# 2. 确认修改内容
# 3. 重启对应服务
sudo systemctl restart php8.1-fpm
# 或
sudo systemctl restart apache2
# 4. 验证
php -i | grep 配置项
如果你能告诉我:
- ✅ Ubuntu 版本
- ✅ PHP 版本
- ✅ Web 服务器(Nginx / Apache)
- ✅ 修改的是哪个配置(如
upload_max_filesize)
我可以给你 精确到命令的一步到位方案。