将 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 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何向现有的 Azure 表存储添加新列

$.post 不向 php 脚本发送数据

HTML 表单和 PHP 脚本 - 不向 MySQL 数据库表提交数据

PHP 错误未记录在单独的日志文件中

PHP 7 脚本不显示错误,或将它们写入日志

将php代码保存到文件中而不解释它