将PHP错误日志文件存储在脚本目录中,而不向现有脚本添加PHP代码


Store PHP error log file in the script directory without adding PHP code to existing scripts

在习惯了cPanel之后,我一直忙于设置自己的VPS,但我似乎找不到如何让PHP在引发错误的脚本所在的目录中创建一个error_log文件。

我希望在不需要为每个.php文件添加一行代码的情况下实现这一点。在cPanel中,这是开箱即用的。

示例:

错误:/var/www/webapp1/index.php
日志文件位置:/var/www/webapp1/error_log

错误:/var/www/info/system/test.php
日志文件位置:/var/www/info/system/error_log

基本上,我希望PHP在每个目录中为该目录中的脚本存储一个error_log文件。

附加信息:

  • 单个VPS帐户
  • Debian 6.0(挤压)GNU/Linux
  • Apache 2.2.16

error_log值设置为要显示在目录中的错误日志的名称,但不要放任何斜杠。该文件将保存在运行脚本的目录中,因此保存在同一目录中。

error_log = "php_error.log"

为此,php.ini中有error_log指令,如:

error_log string

其中字符串表示应记录脚本错误的文件的名称。该文件应可由web服务器的用户写入。如果使用了特殊值syslog,则会将错误发送到系统记录器。在Unix上,这意味着syslog(3),在Windows NT上,它意味着事件日志。Windows 95不支持系统记录器。另请参阅:syslog()。如果未设置此指令,则会将错误发送到SAPI错误记录器。例如,它是Apache中的错误日志或CLI中的stderr。

编辑php.ini文件并用error_log:取消注释该行

error_log = php_errors.log

保存更改,重新启动Apache,然后高兴起来。

如果您使用Linux,请打开一个终端并键入以下内容以重新启动:

sudo services apache2 restart

如果您可以访问WebHost Manager(WHM),则可以搜索SERVICES,然后重新启动HTTPD或Apache。

如果您使用的是EasyHP或Vertrigo,您可以通过程序自行完成。

基本上,我希望php在每个目录中为该目录中的脚本存储一个errorlog文件

假设您使用的是Apache,则可以在VirtualHost中使用Apache的error_log指令来实现此行为。如果内存对我有利的话,PHP本身不会决定将错误存储在哪里。