【问题标题】:Get the PHP error log from PHP on remote hosting从远程主机上的 PHP 获取 PHP 错误日志
【发布时间】:2012-01-29 19:57:57
【问题描述】:

是否有 PHP 函数或其他方式将 PHP 错误日志作为字符串获取?

我需要这个,因为我无法访问我在其他人的服务器上运行的站点的错误日志。 - 他提出将错误日志通过电子邮件发送给我,但这不太方便。

有什么方法可以将错误日志输出到 PHP 页面?


我意识到查看整个服务器的错误日志对我来说并不是真的会发生。但是,我知道您可以通过电子邮件发送手动error_log 电话给自己:

error_log('A really bad error', 3, 'me@myemail.com');

是否可以将页面配置为通过电子邮件将错误发​​送给您而不是显示它们?

【问题讨论】:

标签: php logging error-handling


【解决方案1】:

在安全性很差的服务器上,是的。但是在大多数服务器上都有两个用户:apache 和 [you]。您无权访问服务器日志,因为它们归 apache 用户(或您使用的任何服务器)所有。

不过,你或许可以尝试一下:

echo file_get_contents('/var/log/httpd/error_log');

注意:这是基于 RedHat 的 apache 服务器上的默认位置。可能不一样

更新 反映更新后的问题
不,您无法使用error_log 查看错误日志 - 这是由网络服务器处理的单向进程。它只写日志,你不能​​读它。

您可能可以通过以下方式显示错误:

ini_set('display_errors', 'On');
error_reporting(E_ALL);

您甚至可以使用set_error_handler 来处理所有警告和通知(例如,邮寄)。但这几乎是你所能做的。

【讨论】:

  • 嗨,我在 debian 服务器上 - 刚刚尝试过,但得到“不允许操作”
  • 那么它是一个安全可靠的服务器 ;-) 让那个人把日志邮寄给你。
  • 好的,你认为你可以看看我更新的问题吗?
  • 非常感谢,我想我会使用 set_error_hanlder - 我想要这个的原因是它是为我即将提交给 Apple 的应用程序的网络服务,如果服务出现故障在我提交应用程序和 Apple 批准之间的任何时间,我都需要立即知道 - 干杯。
  • 另一个常见的位置是/var/log/apache2/error.log。规范不容易找到,但它可能是 Find out the error_log's path(虽然没有维护/保持最新)。
猜你喜欢
  • 2012-11-21
  • 2019-06-03
  • 2013-01-03
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多