在 Ubuntu 上 PHP 配置不生效,常见原因和排查办法如下,按出现频率从高到低给你一份“排错清单”。
php --ini
或(Web 环境)
phpinfo();
看 Loaded Configuration File 那一行。
⚠️ 常见坑:
php 和 Apache / Nginx 用的不是同一个 php.ini/etc/php/7.4/cli/php.ini,但网站用的是 fpm/etc/php/7.4/apache2/php.ini
sudo systemctl restart apache2
✅ 没重启 = 配置一定不生效
/etc/php/7.4/fpm/php.ini
sudo systemctl restart php7.4-fpm
如果是 Nginx:
sudo systemctl restart nginx
⚠️ 只重启 Nginx 没用,必须重启 php-fpm
.user.inils -la /你的网站目录/.user.ini
存在的话,里面的配置优先级更高。
查看:
cat /你的网站目录/.user.ini
/etc/php/7.4/fpm/pool.d/www.conf
例如:
php_admin_value[memory_limit] = 256M
这个会覆盖 php.ini
❌ 写成:
upload_max_filesize = 100m
✅ 正确:
upload_max_filesize = 100M
修改后检查语法:
php -l /etc/php/7.4/fpm/php.ini
php -i | grep upload_max_filesize
或 Web 里:
<?php phpinfo(); ?>
display_errors = On
error_reporting = E_ALL
| 场景 | 改哪里 | 重启什么 |
|---|---|---|
| 命令行 php | cli/php.ini | 不用重启 |
| Apache 网站 | apache2/php.ini | apache2 |
| Nginx 网站 | fpm/php.ini | php-fpm |
| Docker | 容器内 php.ini | 容器 |
如果你愿意,可以告诉我:
memory_limit、upload_max_filesize)我可以直接帮你定位到哪一行配置、哪条命令。