Ubuntu 中如何设置 PHP 文件上传大小限制

一颗松果
一颗松果
发布时间:2026-08-23| 186人浏览过
原创

前言

Ubuntu 上的 PHP 上传报错,很多时候不是程序本身有问题,而是默认的文件体积限制太小,或者改到了错误的配置文件。本文按“先定位生效的 php.ini、再修改上传参数、最后重启并验证”的顺序整理,帮你快速判断该改哪一项、该重启哪个服务,以及怎样确认设置已经真正生效。

不少人在 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 环境为例,可以直接执行:

PHP 上传限制参数关系信息图,展示 upload_max_filesize 与 post_max_size 的作用和配合规则。
PHP 上传限制参数怎么配合上传大小并不只改一项,单文件限制和 POST 请求总限制需要一起看。
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 后,保存文件并退出编辑器。接下来需要重启相关服务,否则新配置不会生效。

Ubuntu 中 PHP 上传限制生效流程图,展示 Apache 与 Nginx+PHP-FPM 的重启路径和验证方式。
修改后怎样让配置真正生效改完 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 环境完成修改和重启,通常就能把上传限制顺利调大。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。