宝塔面板PHP文件上传限制怎么调?从零开始调大文件上传上限
为什么上传大文件总是失败?
很多刚用宝塔面板建站的朋友都会遇到一个问题:上传一个几十MB的文件时,页面一直转圈,最后提示“上传失败”或“413 Request Entity Too Large”。
这通常不是服务器坏了,而是 宝塔面板PHP文件上传限制 没放开。
PHP 默认只允许上传 2MB 的文件,如果网站需要上传高清图片、压缩包或视频,就必须手动调大这个限制。
下面我带你从零开始操作,每一步都写明命令和路径。
三个必须改的地方
上传限制牵涉三个层级:PHP 本身、Web 服务器(Nginx 或 Apache)以及宝塔面板的服务管理。
其中任何一个没改,上传都可能被拦下。
- PHP:控制
upload_max_filesize、post_max_size、max_execution_time等参数。 - Web 服务器:Nginx 用
client_max_body_size,Apache 用LimitRequestBody。 - 宝塔面板:每次修改配置文件后,必须重启对应的服务才能生效。
下面按顺序操作,建议一步步跟着做。
第一步:修改 PHP 配置参数
- 登录宝塔面板后台,点击左侧菜单的“软件商店”。
- 找到你当前站点使用的 PHP 版本(例如 PHP 8.1),点击“设置”。
- 在弹出的窗口中,选择“配置文件”标签页,这里就是
php.ini的编辑界面。 - 查找以下几项(可以用 Ctrl+F 快速定位):
upload_max_filesize:上传单个文件的最大值,改成50M。post_max_size:一次 POST 请求的总数据量,必须大于等于upload_max_filesize,建议改成100M。max_execution_time:脚本最大执行时间(秒),上传大文件需要更长时间,改成300。memory_limit:脚本最大内存消耗,改成256M。
- 修改后点击“保存”,然后点击“重启”按钮(或者到“服务”页签重启 PHP-FPM)。
注意:单位不要写错,常用的有 M(兆)和 G(吉)。
数值也不要太大,50M 对多数网站已经够用,太大反而容易让服务器内存耗尽。
第二步:调整 Nginx 上传大小限制
如果站点使用的是 Nginx,还需要修改它的 client_max_body_size。
- 回到宝塔面板首页,点击“网站”。
- 找到你正在操作的站点,点击“设置”。
- 选择“配置文件”标签页(注意不是 PHP 的,是 Nginx 配置)。
- 在文件中搜索
client_max_body_size,如果没有找到,可以在server { }块内新增一行:
client_max_body_size 100M;
如果已经存在,直接修改后面的数值(建议与 PHP 的 post_max_size 一致,比如 100M)。
- 保存文件,然后点击顶部的“重载配置”按钮让 Nginx 生效。
如果你用的是 Apache,
对应参数是 LimitRequestBody,
同样在 Apache 配置文件或 .htaccess 中修改,
单位是字节,
例如 100M 对应 104857600。
第三步:检查并重启全部服务
修改完配置后,一定要重启 PHP 和 Web 服务。
宝塔面板中可以直接操作:
- 对于 PHP:在“软件商店” → 对应 PHP 的“设置” → “服务”页签,点击“重启”。
- 对于 Nginx/Apache:在“软件商店” → 对应 Web 服务的“设置” → “服务”页签,点击“重启”或“重载配置”。
推荐顺序:先重载 Web 服务器,再重启 PHP-FPM。
如果顺序反了,有时会因为缓存导致新配置没生效。
常见问题与避坑
Q1:修改后上传仍然提示“413 Request Entity Too Large”?
A:大概率是 Nginx 的 client_max_body_size 没改成功。请重新检查站点配置文件,确认修改后已经重载配置。另外如果使用了 CDN,CDN 也可能有自己的上传限制,需去 CDN 控制台调整。
Q2:修改了 upload_max_filesize 但上传大于 2M 的文件还是失败?
A:检查 post_max_size 是否也改大了,且比 upload_max_filesize 大。另外如果使用了反向代理(如 Nginx 转发给 Apache),需要修改两端的限制。
Q3:修改后网站变慢或出现 500 错误?
A:可能 memory_limit 或 max_execution_time 改得太大导致资源耗尽。恢复到原始值试一下,确认是配置问题再逐步调大。
Q4:宝塔面板重启服务后,页面显示“502 Bad Gateway”?
A:通常是 PHP-FPM 重启过程中出现短暂中断,等待几秒钟再刷新即可。如果持续 502,检查 PHP 日志定位具体错误。
验证修改是否生效
在网站根目录创建一个 info.php 文件,内容如下:
访问 http://你的域名/info.php,搜索 upload_max_filesize 和 post_max_size,会显示当前实际值。
确认和你的修改一致后,删除该文件(避免泄露服务器信息)。
然后实际操作上传一个略小于上限的文件(比如 45MB 的 zip 包),看能否成功。
如果能正常上传,说明 宝塔面板PHP文件上传限制 已经调通。
如果你正在处理这个限制,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。