将 PHP 错误日志文件存储在脚本目录中,而不向现有脚本添加 PHP 代码
Posted
技术标签:
【中文标题】将 PHP 错误日志文件存储在脚本目录中,而不向现有脚本添加 PHP 代码【英文标题】:Store PHP error log file in the script directory without adding PHP code to existing scripts 【发布时间】:2011-09-02 08:50:03 【问题描述】:习惯了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【问题讨论】:
既然您评论了两个答案,也许接受一个答案以表明哪一个回答了您的问题? 【参考方案1】:将error_log
值设置为您希望出现在目录中的错误日志的名称,但不要放置任何斜杠。该文件将保存在运行脚本的目录中,因此是同一目录。
error_log = "php_error.log"
【讨论】:
【参考方案2】:为此,在 php.ini 中有 error_log
指令,例如:
error_log string
其中字符串表示应记录脚本错误的文件的名称。该文件应该可由 Web 服务器的用户写入。如果使用特殊值 syslog,则将错误发送到系统记录器。在 Unix 上,这意味着 syslog(3),而在 Windows NT 上,这意味着事件日志。 Windows 95 不支持系统记录器。另请参阅:syslog()。如果未设置此指令,则会将错误发送到 SAPI 错误记录器。例如,它是 Apache 中的错误日志或 CLI 中的 stderr。
【讨论】:
这仍然没有回答我的问题,我该如何设置它以将错误日志保存在与 Cpanel 一样的每个不同目录的 php 脚本相同的目录中? 好吧 - 你必须给我们更多细节 - 使用的操作系统,你提到了 VPS - 你有每个用户/应用程序的 VPS 吗?你用什么网络服务器?【参考方案3】:编辑您的 php.ini 文件并取消注释 error_log:
error_log = php_errors.log
保存更改,重新启动 Apache,然后就开心了。
如果您使用 Linux,请打开终端并输入以下内容以重新启动:
sudo services apache2 restart
如果您有权访问 WebHost Manager (WHM),则可以搜索 SERVICES,然后重新启动 HTTPD 或 Apache。
如果您使用的是EasyPHP 或Vertrigo,您可以通过它自己的程序来做到这一点。
【讨论】:
【参考方案4】:基本上我希望php在每个目录中为该目录中的脚本存储一个error_log文件
假设您使用的是 Apache,您可以在 VirtualHost 中使用 Apache 的 error_log 指令来完成此行为。如果我没记错的话,PHP 本身不会决定将错误存储在哪里。
【讨论】:
这仍然没有回答我的问题,我该如何设置它以将错误日志保存在与 Cpanel 一样的每个不同目录的 php 脚本相同的目录中?以上是关于将 PHP 错误日志文件存储在脚本目录中,而不向现有脚本添加 PHP 代码的主要内容,如果未能解决你的问题,请参考以下文章