当 PHP 上传大于 20MB 的文件时,出现 502 Bad Gateway
错误,通常与 NGINX 或 PHP-FPM 的配置有关。这里有几个可能的原因和解决方案:
1. 检查 NGINX 配置
在 NGINX 配置中,默认情况下允许的最大请求体大小是 1MB。你需要增加这个限制。
打开你的 NGINX 配置文件(例如 /etc/nginx/nginx.conf
或某个特定站点的配置文件),并添加或修改以下行:
http {
...
client_max_body_size 100M; # 根据需要设置更大的值
}
确保将 100M
替换为你希望允许的最大上传文件大小。
2. 检查 PHP 配置
PHP 对上传文件大小也有限制。在你的 php.ini
文件中,需要检查和设置以下两个参数:
upload_max_filesize = 100M ; 设置允许上传的最大文件大小
post_max_size = 100M ; 设置 POST 数据的最大尺寸,应该大于或等于 upload_max_filesize
同样地,根据需要调整这些值。
3. 重启服务
修改完以上配置后,需要重启 NGINX 和 PHP-FPM 服务使其生效:
# 重启 NGINX
sudo systemctl restart nginx
# 重启 PHP-FPM (具体命令取决于使用的版本)
sudo systemctl restart php7.x-fpm # 请根据实际版本替换 '7.x'
4. 检查错误日志
如果仍然遇到问题,可以查看 NGINX 和 PHP-FPM 的错误日志以获得更多详细信息,这些信息可以帮助诊断问题所在。
- NGINX 错误日志:通常在
/var/log/nginx/error.log
- PHP-FPM 错误日志:通常在
/var/log/php7.x-fpm.log
(请根据实际版本替换 ‘7.x’)
总结
通过适当增加 client_max_body_size
和相应调整 PHP 的上传相关配置,你应该能够解决这个问题。如果还有其他疑问,请提供更多上下文信息,我会进一步协助你!
内容由零声教学AI助手提供,问题来源于学员提问