不少人在 Ubuntu 服务器上部署 PHP 应用后,上传稍大的图片、压缩包或附件时会直接报错,原因通常不是业务代码,而是 PHP 默认的上传限制太小。要解决这个问题,关键是先确认当前生效的是哪份 php.ini,再调整上传相关参数,并在重启服务后验证修改是否真正生效。
先确认生效的 php.ini 在哪里
PHP 在不同运行方式下可能加载不同配置文件,最常见的是 Web 服务环境使用 apache2 或 fpm,命令行则使用 cli。因此第一步不要直接修改路径,而是先查清当前 PHP 实际加载的是哪份配置。
php --ini
这条命令会直接输出 PHP 配置文件路径。实际部署中,常见位置包括:
/etc/php/7.x/apache2/php.ini/etc/php/7.x/cli/php.ini
其中 7.x 需要替换成你当前使用的 PHP 版本号。如果你的网站跑在 Apache 下,通常应优先检查 apache2 对应的配置;如果是 Nginx 配合 PHP-FPM,则还要关注 FPM 所使用的那份配置。
修改上传大小限制参数
找到配置文件后,用编辑器打开它。以 Apache 环境为例,可以直接执行:

sudo nano /etc/php/7.x/apache2/php.ini
如果你修改的是命令行环境配置,就把路径中的 apache2 替换为 cli。如果服务器使用的是 PHP-FPM,则应打开对应 FPM 环境下的 php.ini。
重点看这两个配置项
在 php.ini 中,重点找到下面两项:
upload_max_filesize = 2M
post_max_size = 8M
它们的作用分别是:
upload_max_filesize:单个上传文件允许的最大体积。post_max_size:整个 POST 请求允许的最大体积。
如果你希望把上传上限调整为 50M,可以这样修改:
upload_max_filesize = 50M
同时要注意,post_max_size 的值必须大于或等于 upload_max_filesize,否则即使前者放宽了,实际上传仍可能被 POST 请求总大小限制拦住。
保存后按运行环境重启服务
修改完 php.ini 后,保存文件并退出编辑器。接下来需要重启相关服务,否则新配置不会生效。

Apache 环境
sudo systemctl restart apache2
Nginx + PHP-FPM 环境
sudo systemctl restart nginx
sudo systemctl restart php7.x-fpm
这里的 7.x 同样要替换成你实际安装的 PHP 版本号。
怎么确认修改已经真正生效
仅仅改完配置并重启服务还不够,最好再做一次结果核对。最直接的方法,是新建一个包含 phpinfo(); 的 PHP 文件,然后通过浏览器访问它。
如果页面里显示的 upload_max_filesize 和 post_max_size 已经变成你刚设置的新值,说明这次修改已经生效;如果仍然是旧值,通常意味着你改错了配置文件,或者重启的不是当前实际使用的 PHP 服务。
实际调整时最容易忽略的点
这类问题看起来只是改两个参数,但真正影响结果的往往是“改的是不是当前生效的那份配置”。在 Ubuntu 上,PHP 可能同时存在 cli、apache2、fpm 多套配置,先用 php --ini 确认路径,再根据你的 Web 环境完成修改和重启,通常就能把上传限制顺利调大。







