u8,u8国际,u8国际官方网站,u8国际网站,u8国际网址,u8国际链接,u8体育,u8体育官网,u8体育网址,u8注册,u8体育网址,u8官方网站,u8体育APP,u8体育登录,u8体育入口
10.1.2 错误日志 对于 PHP 开发者来说, 一旦某个产品投入使用, 应该立即将 display_errors 选项关闭, 以免因为这些错误所透露的路径、 数据库连接、 数据表等信息而遭到黑客攻击。 但是, 任何一个产品在投入使用后, 都难免会有错误出现, 那么如何记录一些对开发者有用的错误报告呢? 我们可以在单独的文本文件中将错误报告作为日志记录。 错误日志的记录, 可以帮助开发人员或者管理人员查看系统是否存在问题。 如果需要将程序中的错误报告写入错误日志中, 只要在 PHP 的配置文件中, 将配置指令 log_errors 开启即可。错误报告默认就会记录到 Web服务器的日志...
10.1.2 错误日志 对于 PHP 开发者来说, 一旦某个产品投入使用, 应该立即将 display_errors 选项关闭, 以免因为这些错误所透露的路径、 数据库连接、 数据表等信息而遭到黑客攻击。 但是, 任何一个产品在投入使用后, 都难免会有错误出现, 那么如何记录一些对开发者有用的错误报告呢? 我们可以在单独的文本文件中将错误报告作为日志记录。 错误日志的记录, 可以帮助开发人员或者管理人员查看系统是否存在问题。 如果需要将程序中的错误报告写入错误日志中, 只要在 PHP 的配置文件中, 将配置指令 log_errors 开启即可。错误报告默认就会记录到 Web服务器的日志文件里, 例如记录到 Apache服务器的错误日志文件error.log中。 当然也可以记录错误日志到指定的文件中或发送给系统 syslog, 分别介绍如下: 1. 使用指定的文件记录错误报告日志 如果使用自己指定的文件记录错误日志, 一定要确保将这个文件存放在文档根目录之外, 以减少遭到攻击的可能。 并且该文件一定要让 PHP 脚本的执行用户(Web 服务器进程所有者) 具有写权限。 假设在 Linux操作系统中, 将/usr/local/目录下的 error.log 文件作为错误日志文件, 并设置 Web 服务器进程用户具有写的权限。然后在 PHP 的配置文件中, 将 error_log 指令的值设置为这个错误日志文件的绝对路径。需要将中的配置指令做如下修改: 1. error_reporting = E_ALL ; 将会向 PHP 报告发生的每个错误 2. display_errors = Off ; 不显示满足上条 指令所定义规则的所有错误报告 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()函数, 送出一个用户自定义的错误信息。 该函数的原型如下所示: 1. bool error_log ( string message [, int message_type [, string destination [, string extra_headers] ] ] ) 此函数会送出错误信息到 Web 服务器的错误日志文件、 某个 TCP 服务器或到指定文件中。 该函数执行成功则返回 TRUE, 失败则返回 FALSE。 第一个参数 message 是必选项, 即为要送出的错误信息。 如果仅使用这一个参数, 会按配置文件 php.ini 中所设置的位置处发送消息。 第二个参数 message_type 为整数值: 0表示送到操作系统的日志中; 1 则使用 PHP 的 Mail()函数, 发送信息到某 E-mail 处, 第四个参数 extra_headers亦会用到; 2 则将错误信息送到 TCP 服务器中, 此时第三个参数 destination 表示目的地 IP 及 Port; 3 则将信息存到文件 destination 中。 如果以登入 Oracle 数据库出现问题的处理为例, 该函数的使用如下所示: 1. ?php 2. if(! Ora_Logon($username, $password) ) { 3. error_log(Oracle 数据库不可用! , 0) ; //将错误消息写入到操作系统日志中 4. } 5. if(! ($foo=allocate_new_foo() ) { 6. error_log(出现烦了! , 1, webmaster@发送到管理员邮箱中 7. }
@HASHKFK