使用nginx和php-fpm我遇到了随机502网关错误的问题.在我的情况下,我发现了一个场景,其中各种php.ini error_log设置和error_reporting级别导致出现随机502网关错误.
通过更改php.ini设置error_reporting和error_log,我能够使502网关错误消失 - 但更重要的是,我能够看到日志中真正的php错误并修复它们.
主要问题是如果"error_reporting设置为显示通知",则"error_logging = On"然后我需要确保将error_log设置为有效路径,这对于服务器是可写的.
// !!! 502 Gateway Error (unhappy server)
error_reporting = E_ALL & E_NOTICE
; error_log = php_errors.log (note this is commented)
// Happy Server, no 502 gateway error
error_reporting = E_ALL & E_NOTICE
error_log = /valid/log/path/and/permissions
// Happy Server, no 502 gateway error
error_reporting = E_CORE_ERROR
; error_log = php_errors.log (note this is commented)
Run Code Online (Sandbox Code Playgroud)
注意,实际错误是php通知...但是ngingx为与未设置的属性相关的php通知投掷502网关错误.
另请注意,每个php通知都没有触发502网关错误.
希望这可以节省一些人的挫败感!
我在以 fastCGI 模式运行 iis 和 php 的 Windows 机器上遇到过这个问题,所以这不仅仅是一个 nix 问题。
罪魁祸首也是 php 日志记录。您不必将其设置为静态目录,但如果您授予适当的权限,它可以写入脚本所在的同一目录。(如果您有一个大型且复杂的站点,这会非常有帮助)
我的服务器是这样设置的,我刚刚添加了一条规则,不向公众提供错误日志。
总而言之,检查权限!=)
| 归档时间: |
|
| 查看次数: |
7845 次 |
| 最近记录: |