对于web开发者,当程序发到外网(或预发布)情况下,服务器默认设置是不会报错的(错误详情报不出来),此时,若遇到一个请求,报服务器500错误,怎么排查原因呢?我曾经是代码一行一行追踪,先echo 然后die,定位错误原因。今天发现一个办法:
看下apache log文件(若没root权限可找运维帮忙)。log文件位置:/var/log/apache2/error.log,log文件大致内容如下:
造成500错误的原因便一目了然了。
ps:
log文件位置定义在/etc/apache2/sites-available目录下对应虚拟主机的配置文件中:如ErrorLog ${APACHE_LOG_DIR}/error.log
环境变量的定义位置:/etc/apache2/envvars文件中。