宝塔面板 post_max_size 怎么调
改完这篇,你能自己动手把宝塔面板的 post_max_size 从默认 8M 调到 100M 甚至更大,并且知道还需要同步改哪几个参数,否则改了也不生效。
post_max_size 限制的是单次 POST 请求体的总大小,表单提交、后台上传大文件、导入大 SQL 时提示「上传失败」「请求体过大」,多半就是它太小。它不是改一个地方就完事,PHP、Nginx/Apache 两边都要动。
第一步:确认站点用的是哪个 PHP 版本
这一步是为了避免改错版本——宝塔面板可以同时装 PHP 5.6 到 8.3 多个版本,每个版本的配置文件互相独立。
登录宝塔面板 → 左侧菜单「网站」→ 找到你的站点 → 点右侧「设置」→ 在弹出的窗口里看「网站目录」旁边的 PHP 版本,比如显示 PHP-74。记住这个版本号。
注意:面板首页「软件商店」里列出的 PHP 是全部版本,改配置前一定先确认站点实际挂的是哪一个,改错了等于没改。
第二步:改 php.ini 里的三个参数
这一步完成后,PHP 侧就允许接收大请求体了。
左侧菜单「软件商店」→ 顶部切到「已安装」→ 找到 PHP-7.4(换成你实际的版本)→ 点右侧「设置」→ 弹窗里切到「配置修改」标签页 → 在搜索框输入 post_max_size。
把这一行改成:
post_max_size = 100M
同时往下找另外两行,一起改:
upload_max_filesize = 100M
memory_limit = 256M
点右上角「保存」。三个值的关系是:upload_max_filesize 要小于等于 post_max_size,memory_limit 一般要不小于 post_max_size,否则大文件处理时 PHP 会内存溢出。
注意:宝塔 8.x 的 PHP 设置弹窗里还有个「性能调整」标签页,那里也能改
post_max_size和upload_max_filesize。两个地方改的是同一个文件,别重复改出冲突值,改完在「配置修改」里核对一遍最终数值。
第三步:改 Web 服务器的请求体上限
这一步经常被漏掉。PHP 放开了,但 Nginx 默认只允许 1M 的请求体,请求会在到达 PHP 之前就被拦下,报 413 错误。
如果站点用的是 Nginx(宝塔默认):
左侧「网站」→ 点站点右侧「设置」→ 切到「配置文件」标签页 → 找到 server { ... } 这一段,在 server_name 那行下面加一行:
client_max_body_size 100M;
保存。
如果用的是 Apache:左侧「软件商店」→「已安装」→ Apache → 「设置」→「配置修改」,在文件末尾加:
LimitRequestBody 104857600
数字单位是字节,104857600 约等于 100M。
注意:如果你希望全站所有站点都生效,Nginx 可以在「软件商店」→ Nginx →「设置」→「配置修改」里,把
client_max_body_size 100M;加在http { }段内。站点级配置优先级高于全局配置。
第四步:重启 PHP 和 Web 服务器
改完配置文件必须重启才加载,否则 phpinfo 里显示的还是旧值。
「软件商店」→「已安装」→ 找到 PHP-7.4 → 右侧「设置」→ 弹窗切到「服务」标签页 → 点「重启」。然后回到「软件商店」→ 找到 Nginx → 点右侧「重启」。
第五步:验证是否真的生效
在站点根目录建一个文件 info.php,内容:
<?php phpinfo(); ?>
浏览器访问 你的域名/info.php,按 Ctrl+F 搜 post_max_size,看到 100M 就成功了。同一页面搜 upload_max_filesize 一并核对。
验证完立刻删掉 info.php,这个文件会暴露服务器环境信息。
注意:如果你要改的是宝塔面板自身的上传限制(比如 phpMyAdmin 导入大 SQL),那要改的是面板用的那个 PHP 版本,路径一样,但要先确认面板当前挂的是哪个版本。
小结
post_max_size必须和upload_max_filesize一起改,前者不小于后者memory_limit要配套放大,否则处理大文件会崩- Nginx 的
client_max_body_size和 Apache 的LimitRequestBody不改,PHP 改了也白改 - 改完必须重启 PHP 和 Web 服务器,再用
phpinfo()验证 - 多 PHP 版本环境下,先确认站点挂的是哪个版本再动手
原文链接:https://www.gj0.com/thread-830.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。