Open wangming1993 opened 6 years ago
开发使用的是 docker + nginx + php-fpm
docker
nginx
php-fpm
nginx proxy php 到 php-fpm:9000
php
php-fpm:9000
请求 url 时总是出现 500 Internal Server Error, 但是我却没有找到任何的错误信息,(事情比较急,我内心是崩溃的)只有一条 nginx 的 access log, 显示 500, 没有任何有用信息。
500 Internal Server Error
不解决这个接下来的开发就没办法进行,考虑到有 nginx access log, 说明 nginx 将请求发出去了, 错误应该出现在 php-fpm 对于 php 的处理上,不管错误出现在哪里, 一定要有log, 顺着这个思路, 我想是否可以在 php.ini 中配置呢,所有的错误全部打开。
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 代码里面很蠢的语法错误)
什么错误啊, 语法错误不是error级别吗?为什么没有反应出来啊?
@rexchen123 代码里面的一些语法错误,我如数组括号不匹配,少了结尾的 ; , 导致程序无法正常运行, 然后没有任何错误显示, 无法定位错误信息, 一直让我以为是 nginx 的问题
;
错误级别的也不一定就会显示的,这和你的 php.ini 配置有关系吧
开发使用的是
docker
+nginx
+php-fpm
nginx
proxyphp
到php-fpm:9000
请求 url 时总是出现
500 Internal Server Error
, 但是我却没有找到任何的错误信息,(事情比较急,我内心是崩溃的)只有一条nginx
的 access log, 显示 500, 没有任何有用信息。不解决这个接下来的开发就没办法进行,考虑到有 nginx access log, 说明 nginx 将请求发出去了, 错误应该出现在
php-fpm
对于 php 的处理上,不管错误出现在哪里, 一定要有log, 顺着这个思路, 我想是否可以在php.ini
中配置呢,所有的错误全部打开。把这些开启然后重启
php-fpm
之后重新访问, 果然看到了错误输出,根据提示区去修改,终于解决了问题。(最后发现是 php 代码里面很蠢的语法错误)