这两天迁移了一个过去的Web服务到另外一个服务器,本来按照提前设定的步骤,操作结果都很顺利。但是谁想,迁移完成内部测试,“咣”,HTTP ERROR 500。
这是一个基于Linux + Nginx + PHP框架的系统。根据我的经验,这种错误基本上都是后端的PHP脚本问题导致的。它报错之后,出于安全防护考虑,PHP-FPM直接返回了500 error,就是报告内部服务器错误给Nginx,浏览器就看到了提示。
这种问题,要排查出来,首要的一个步骤就是尽可能的在减少安全隐患的情况下,搜集错误信息。Web系统因为安全原因,线上的错误提示都是关闭的。但是也有办法单独的给出现问题的系统打开。软件问题错综复杂,影响因素很多,必须尽快隔离错误、定位问题原因。
对于PHP系统,有好多处会影响错误日志的输出。有个建议是:对于修改的配置,先做个备份。使用日志文件,记录你刚才修改了什么文件,然后找到问题后,根据自己的修改还原回去。这样避免定位问题时,改了一大堆,却忘记还原回去。这样会留下很大的问题。
下面是可以输出日志的配置点及其工具,后面有想到的内容会继续补充。
1、php.ini配置文件
生产环境配置是:
error_reporting = E_ALL & ~E_DEPRECATED &am