LECMS怎么修改上传文件大小限制
学完这篇你能得到一套可照做的 LECMS 上传大小限制修改流程:同时调整 PHP、Nginx/Apache 和 LECMS 自身三层限制,把默认的 2MB/10MB 改成 100MB,并能定位上传失败是卡在哪一层。下面以 LECMS v2.1.0、宝塔面板 7.7.0、PHP 7.4、Nginx 1.20 为例。
第一步:确认当前限制,确定目标值
这一步要查出 LECMS 现在到底被哪几个参数限制,改完才知道有没有生效。先登录 LECMS 后台,进入「系统」→「系统设置」→「上传设置」,看「允许上传大小」是多少。再在网站根目录新建 phpinfo.php,写入 <?php phpinfo();,浏览器访问 你的域名/phpinfo.php,搜索 upload_max_filesize、post_max_size、memory_limit、max_execution_time。也可以在服务器执行:
php -i | grep -E 'upload_max_filesize|post_max_size|memory_limit|max_execution_time'
假设目标是把上传限制改成 100MB。
注意:
post_max_size必须大于upload_max_filesize,memory_limit建议大于post_max_size,否则大文件仍会失败。
第二步:修改 PHP 配置 php.ini
这一步要放开 PHP 层限制。宝塔面板进入「软件商店」→「已安装」→ 找到「PHP 7.4」→ 点「设置」→「配置修改」。搜索并改成:
upload_max_filesize = 100M
post_max_size = 110M
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
保存后,在宝塔「软件商店」→「PHP 7.4」→「重启」,或执行:
systemctl restart php74-fpm
完成后 PHP 层允许 100MB 上传。
注意:PHP 8.0 的路径通常是
/www/server/php/80/etc/php.ini,服务名是php80-fpm,不要改错版本。
第三步:修改 Nginx 或 Apache 限制
这一步要放开 Web 服务器层限制,否则 Nginx 会先返回 413。宝塔面板进入「网站」→ 找到 LECMS 站点 →「设置」→「配置文件」。在 server {} 内加一行:
client_max_body_size 100m;
保存后重载 Nginx:
nginx -s reload
如果用 Apache,在站点根目录 .htaccess 或虚拟主机配置里加:
LimitRequestBody 104857600
完成后 Web 服务器不再拦截 100MB 文件。
注意:
client_max_body_size要略大于 PHP 的post_max_size,比如 PHP 写 110M,Nginx 写 120m。
第四步:修改 LECMS 自身上传配置
这一步要改掉 LECMS 应用层自己的限制。先回后台「系统」→「系统设置」→「上传设置」,把「允许上传大小」改成 102400 KB 或 100 MB,保存。若后台没有这个选项,编辑 LECMS 配置文件,常见路径是 /www/wwwroot/lecms/config/config.php,搜索 upload_max_size、upload_size、max_size,改成 104857600。如果控制器里写死了,例如 app/admin/controller/Upload.php 中出现 10 * 1024 * 1024,同步改成 100 * 1024 * 1024。最后进后台「系统」→「缓存管理」→「清除全部缓存」。
注意:改代码前先备份,不要改
vendor目录里的第三方文件。
第五步:验证上传并排查失败原因
这一步要实际传一个 80MB 文件,确认三层都生效。进入 LECMS 后台「内容」→「添加内容」→「上传附件」,选一个 80MB 左右的 zip 或 mp4。如果成功,说明限制已放开。如果失败:Nginx 报 413,回第三步;PHP 报错看 /www/server/php/74/var/log/php-fpm.log;LECMS 报错看 runtime/log 目录。若用了 CDN,还要在 CDN 控制台调大上传限制。
注意:浏览器本身一般没有 100MB 限制,但部分老版本浏览器或代理工具会拦截超大表单。
小结
- LECMS 上传大小限制通常有三层:PHP、Nginx/Apache、LECMS 后台或代码。
- PHP 重点改
upload_max_filesize、post_max_size、memory_limit、max_execution_time。 - Nginx 重点改
client_max_body_size,Apache 重点改LimitRequestBody。 - LECMS 后台「上传设置」和配置文件里的
upload_max_size也要同步改。 - 改完必须重启 PHP、重载 Nginx,并清除 LECMS 缓存。
- 顺序上让
post_max_size大于upload_max_filesize,Nginx 限制再略大于 PHP。
原文链接:https://www.gj0.com/thread-771.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。