Ubuntu+Apache2.4+PHP7.4环境下Symfony大文件上传超时错误求助
解决Apache 2.4 + PHP-FPM大文件上传超时(proxy_fcgi错误70007)
你的错误(70007)The timeout specified has expired是慢网络环境下大文件上传时,Apache或PHP-FPM的超时阈值触发导致的,结合你的配置,按以下步骤调整:
1. 调整Apache的RequestReadTimeout参数
当前配置里body=20,MinRate=50的阈值过高,慢网络下很容易因为20秒内读取速率低于50字节/秒触发超时。修改为:
RequestReadTimeout handshake=0 header=20-600,MinRate=50 body=600,MinRate=10
body=600:允许最长600秒完成请求体读取MinRate=10:只要每秒至少读取10字节就不触发超时,适配慢网络场景
2. 给FCGI代理添加超时配置
你用SetHandler方式配置PHP-FPM代理,但没指定超时,ProxyTimeout不会自动覆盖这个场景。在<FilesMatch>块里添加ProxySet指令:
<FilesMatch \.php$> SetHandler proxy:fcgi://127.0.0.1:9000 ProxySet timeout=1800 </FilesMatch>
这个配置确保Apache给PHP-FPM的请求分配足够的处理时间(1800秒)。
3. 检查并调整PHP配置
确保PHP的上传和超时参数匹配大文件需求:
- 编辑对应PHP版本的
php.ini文件(如/etc/php/7.4/fpm/php.ini):upload_max_filesize = 100M # 根据实际文件大小调整 post_max_size = 120M # 需大于upload_max_filesize max_execution_time = 1800 max_input_time = 1800 - 编辑PHP-FPM的pool配置(如
/etc/php/7.4/fpm/pool.d/www.conf):request_terminate_timeout = 1900s # 比Apache超时稍长,避免PHP先中断请求
4. 重启服务生效
修改完配置后,重启Apache和PHP-FPM使设置生效:
sudo systemctl restart apache2 sudo systemctl restart php7.4-fpm
这些调整从请求体读取、代理超时、PHP处理三个层面解决慢网络下的大文件上传超时问题。
内容的提问来源于stack exchange,提问作者Mauricio Ponce
相关产品推荐
相关产品推荐

