You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

上传超50MB文件触发503错误,附Apache日志异常求排查

大文件上传触发503错误的原因及解决办法

核心原因分析

从Apache error_log中的[lsphp is killed?]: SendRequest: write to backend socket failed: errno 32(errno 32对应管道破裂错误)可以确定,问题根源是LSPHP进程在处理超过50MB的大文件上传时,因配置限制被系统或服务终止,具体触发场景包括:

  • PHP上传/内存/执行时间配置未适配大文件需求
  • LSAPI(LiteSpeed API)的请求大小或进程资源限制过严
  • 系统级别的进程资源限制截断了LSPHP进程

解决办法

1. 调整PHP核心配置

编辑PHP配置文件(路径示例:/etc/php/7.4/lsphp/php.ini,根据实际PHP版本和环境调整),修改以下参数:

# 允许的单个文件上传大小,设置为你需要的最大值(如200M)
upload_max_filesize = 200M
# POST请求总大小,必须大于upload_max_filesize
post_max_size = 220M
# PHP脚本内存限制,避免处理大文件时内存溢出
memory_limit = 256M
# 脚本最大执行时间,延长至大文件上传所需时长
max_execution_time = 300

修改完成后,重启LSPHP服务:

systemctl restart lsphp74  # 替换为你的PHP版本对应的服务名

2. 调整LSAPI服务配置

编辑Apache的LSAPI配置文件(路径示例:/etc/httpd/conf.d/lsapi.conf),添加或修改以下参数:

# 允许的最大请求大小,与PHP配置的post_max_size匹配
LSAPI_MAX_REQUEST_SIZE 220M
# LSPHP进程最大空闲超时时间,避免上传过程中进程被回收
LSAPI_PROCESS_MAX_IDLE_TIME 300
# LSPHP进程内存上限,与PHP的memory_limit匹配
LSAPI_MEM_LIMIT 256M

重启Apache服务使配置生效:

systemctl restart httpd  # 或apache2ctl restart(Debian/Ubuntu环境)

3. 检查系统级资源限制

查看当前Apache用户的进程资源限制:

su - apache -c "ulimit -a"

如果file size或virtual memory限制过小,编辑/etc/security/limits.conf添加以下配置:

apache soft fsize unlimited
apache hard fsize unlimited
apache soft as unlimited
apache hard as unlimited

保存后重启系统或重新加载PAM配置:

systemctl restart systemd-logind

4. 验证修复效果

上传一个超过50MB的测试文件(如150MB),同时监控Apache的error_log,若不再出现lsphp is killed相关错误,说明配置已生效。


内容的提问来源于stack exchange,提问作者Brian Millot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:55:26