wangming1993 / issues

记录学习中的一些问题,体会与心得 https://wangming1993.github.io/issues
8 stars 4 forks source link

nginx 500 Internal Server Error 解决 #69

Open wangming1993 opened 6 years ago

wangming1993 commented 6 years ago

开发使用的是 docker + nginx + php-fpm

nginx proxy phpphp-fpm:9000

请求 url 时总是出现 500 Internal Server Error, 但是我却没有找到任何的错误信息,(事情比较急,我内心是崩溃的)只有一条 nginx 的 access log, 显示 500, 没有任何有用信息。

不解决这个接下来的开发就没办法进行,考虑到有 nginx access log, 说明 nginx 将请求发出去了, 错误应该出现在 php-fpm 对于 php 的处理上,不管错误出现在哪里, 一定要有log, 顺着这个思路, 我想是否可以在 php.ini 中配置呢,所有的错误全部打开。

; http://php.net/error-reporting
error_reporting = E_ALL

; http://php.net/display-errors
display_errors = On

; http://php.net/log-errors
log_errors = On

; http://php.net/track-errors
track_errors = On

; http://php.net/html-errors
html_errors = On

; Log errors to specified file. PHP's default behavior is to leave this value
; empty.
; http://php.net/error-log
; Example:
error_log = php_errors.log
; Log errors to syslog (Event Log on Windows).
;error_log = syslog

把这些开启然后重启 php-fpm 之后重新访问, 果然看到了错误输出,根据提示区去修改,终于解决了问题。(最后发现是 php 代码里面很蠢的语法错误)

rexchen123 commented 6 years ago

什么错误啊, 语法错误不是error级别吗?为什么没有反应出来啊?

wangming1993 commented 6 years ago

@rexchen123 代码里面的一些语法错误,我如数组括号不匹配,少了结尾的 ; , 导致程序无法正常运行, 然后没有任何错误显示, 无法定位错误信息, 一直让我以为是 nginx 的问题

错误级别的也不一定就会显示的,这和你的 php.ini 配置有关系吧