为了便于查找问题, 首先建议开发者打开php错误日志, 以便通过php错误日志来排错。
LNMP下的错误需要编辑以下这个文件----假设你的php被安装到了/usr/local/php 那么配置文件就应该在以下位置:
/usr/local/php/etc/php-fpm.conf
加上
php_admin_value[error_log] = /usr/local/php/var/log/php_errors.log php_admin_flag[log_errors] = on
或在/usr/local/php/etc/php-fpm.conf里设置,加上catch_workers_output = yes,错误信息就会记录到php-fpm.conf里error_log设置的文件里。
上述两种方法都行,重启php-fpm生效
同理php.ini里的display_errors也是需要在php-fpm.conf里设置的,加上php_flag[display_errors] = On就开启了。
有时因为权限等问题, 可能错误日志文件不会自动创建,可以执行
touch /usr/local/php/var/log/php_errors.log && chown www:www /usr/local/php/var/log/php_errors.log
这个命令就可以了。
还有的同学喜欢在php.ini里面配置, 那么就要在php.ini里面查找error关键字, 一个一个地根据需要改, 重点就是以下两项:
log_errors=On # 打开日志记录 error_log=绝对路径地址
本文只细讲在php-fpm.conf里的改法, 就不再赘述php.ini的改法。
如果还是捕获不到错误怎么办?
那就要查看项目代码头部当中是否有配置到ini_set和error_reporting()这两个函数是否把错误报告给关了或者引导到别处去了。
开启PHP错误日志的其他方式
LAMP和LNMPA下开启错误日志的方法是:编辑
/usr/local/php/etc/php.ini
查找
;error_log
加上
error_log=/var/log/php_errors.log
然后重启apache生效。
出了问题你就在用vim或者cat命令在/var/log/php_errors.log里面找
有时候上面设置可能无法记录下日志,可以尝试把错误日志设置一下, 在php.ini里
error_log = syslog
这样就会输出到系统日志里,一般是 /var/log/messages 日志文件中会记录php报错的相关信息。