ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[toc] - 场景: 上了生产环境,一定要把相关debug,display_errors错误提示等关掉。那么问题来了,我们在生产该如何查看php等相关错误呢? 答:记录到错误日志里。error.log(或直接发送到syslog) ## :-: **配置** 需要将php.ini中的配置指令做如下修改: 1. error_reporting = E_ALL #将会向PHP报告发生的每个错误 (配置文件中已经给提示了,见下图) ![](https://box.kancloud.cn/075d5925d8eaadbb5d107c2b1e4fd9ea_617x144.png) 2. display_errors = Off #不显示满足上条 指令所定义规则的所有错误报告,设置成off发生错误时,浏览器报500,不显示具体错误(具体错误不会输出到浏览器上,用户也就看不到。会写到第5步的错误文件中,非正式环境全设置成on更方便) 3. log_errors = On #开启错误日志 4. log_errors_max_len = 1024 #设置每个日志项的最大长度 5. error_log =/usr/local/error.log #指定产生的 错误报告写入的日志文件位置 PHP的配置文件按上面的方式设置完成以后,并重新启动Web服务器。这样,在执行PHP的任何脚本文件时,所产生的所有错误报告都不会在浏览器中显示,而会记录在自己指定的错误日志/usr/local/error.log中。此外,不仅可以记录满足error_reporting所定义规则的所有错误, 而且还可以使用PHP中的error_log()函数,送出一个用户自定义的错误信息,写入到error_log中。或故意发生个错误,如 运行ech<span style="color:red;">O</span>,触发的错误就会写到php的错误日志中。 >[warning]在linux上开启的话,/usr/local目录要有写入权限,不然触发错误也不会生成文件。如 你登录linux用的是root,php的用户是www,此时权限应该是757。 ## :-: **查看 错误日志 存放位置** 1. 命令 echo '<?php phpinfo(); ?>' | php 2>&1 |grep -i error_log 或者在一个php文件中输出 phpinfo();查看错误日志存放位置 2. 通过php.ini配置文件来查看错误日志存放地址 vi /etc/php.ini ![](https://box.kancloud.cn/86db24c0a7d73e49822915a3852657d8_730x436.png) 3. 查看日志: ``` shell tail -f -50 /var/php_errors.log ``` ![](https://box.kancloud.cn/4033499c5df1e28667aef86f003ca1bc_771x269.png)