发布于2026-07-19 阅读(0)
扫一扫,手机访问
上传文件到宝塔面板管理的站点,明明网络没问题,却总是在50MB这个节点上被“咔嚓”一下截断——这事儿在运维圈里可太常见了。很多时候,上传失败、或者提示文件过大,根源就是Nginx和PHP这俩“看门人”设置的限高杆,其中最低的那根决定了你能传多大的文件。今天咱们就把这个逻辑理清楚,顺便把手尾一并收拾利索。
首先,宝塔面板本身并不会硬性规定一个50MB的上传上限。你看到那个“上传失败”的报错,十有八九是后端Web服务器(通常是Nginx)或者PHP给拦下来的。问题的症结,就在Nginx的client_max_body_size、PHP的upload_max_filesize和post_max_size这三项配置里,系统取的是它们三个当中的最小值。
这是最容易被忽略的一步——很多人一股脑儿去调PHP参数,结果Nginx在请求体还没到PHP那一步就直接说“不”了。所以,动手的第一步是放行Nginx。
/www/server/nginx/conf/nginx.conf这个文件,在http{...}这个大块儿里(注意,不是后面的server块),加上一行:client_max_body_size 500m;。至于具体写多大,按你实际需求来,这里用500M举例。server {开头的地方,在它后面紧跟着插入那句代码,注意缩进要跟下面的语句对齐。bt reload,或者在面板里点击【重载Nginx】。改完不重载,等于白忙活。Nginx这边放行了,PHP的路口也得同步打开。这里有个细节需要留意:post_max_size这个值必须大于等于upload_max_filesize,否则PHP会悄悄把大文件截断,连个像样的错误提示都不给你。在宝塔面板里操作很简单:
upload_max_filesize,把它改成500M(注意单位是大写M,小写m在某些环境下不识别)。post_max_size,也改成500M或者更宽裕一点的512M。phpinfo.php文件,内容写上,然后从浏览器访问它,搜索那两个参数值确认已更新。哪怕后端全都放开了,有时候在宝塔面板界面上传依然会卡住。这种情况,问题很可能出在安全策略或插件上。有两样东西值得重点检查:
此外,调出浏览器的开发者工具(按下F12,切到Network标签页),看上传请求返回的状态码。如果返回的是413 Request Entity Too Large,那说明Nginx那边还没生效;如果返回500或者直接静默失败,多半是PHP配置或者插件的问题。
说到底,这活儿本身并不复杂,真正的麻烦在于:改完参数忘重载、改了Nginx却漏了PHP、或者自以为改对了版本,结果改的是另一个PHP实例的配置文件。所以,搞定之后不妨用php -i | grep "Loaded Configuration File"核对一下当前PHP加载的是哪份配置,这样才能确保万无一失。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8