gpt4 book ai didi

PHP - error_log() 不会打印到文件

转载 作者:可可西里 更新时间:2023-10-31 23:36:22 25 4
gpt4 key购买 nike

标题几乎说明了一切。我一直在努力让这个工作一整天。我正在创建一个基于 PHP 的登录系统,我需要进行一些调试。现在对我来说最有用的是能够在整个 PHP 程序的某些点将调试消息写入文件。根据文档,看起来这就是 error_log() 应该做的,但尽管我已经尝试了一切,但我完全没有成功。我在下面尝试过的所有内容的完整列表:

  • 将以下内容添加到 /etc/php/7.0/apache2/php.ini

    error_reporting = E_ALL
    display_errors = On
    log_errors = On
  • 此外,尝试将 error_log 设置到 /usr//var/www/http/ 中的位置>/home/

  • 使用 ini_set()error_reporting() 设置所有这些变量,包括 PHP 文件中的 error_log

  • 手动创建应该写入的文件,并将其拥有的用户和组设置为 www-data 并将其权限设置为 777

  • 最后但同样重要的是,重新安装 libapache2-mod-php7.0php7.0,无济于事

  • 基本上,除了在跳楼前用我的笔记本电脑打破我办公楼三楼的 window 之外的一切

我真的找不到其他东西可以在 Google 上尝试,所以我想我应该问问专家,现在我来了。如果有人可以提供任何建议,我们将不胜感激。

最佳答案

我猜日志会写入系统日志,因为在 error_log() 中您没有提供目的地。

试试下面的代码

error_log("An error occured", 3, "/var/tmp/my-errors.log");

确保这个文件可以被 php 读取,fpm 或 www-data 取决于你的配置,你可以在使用 touch 之前创建它,并使用 chmod 手动添加权限

3表示destination是一个文件

如果您使用 apache 然后检查 httpd.conf 或任何其他地方(v 可能存在错误日志的位置

ErrorLog "/var/log/apache2"

然后使用ls -la ll 等检查此文件是否有以下用户组

 -rwxrwxr-x 1 www-data www-data 

应该会出现这样的内容。

另一个选项是在适当的 php.ini 中设置以下内容(CLI 和 apache 有不同的 php.ini 文件)

 error_log = /var/log/phperrors.log 

然后

 touch /var/log/phperrors.log
chown www-data: /var/log/phperrors.log
chmod +rw /var/log/phperrors.log

没有奇迹,但如果它仍然不起作用,您可以使用 set_error_handler() 编写并注册您自己的错误处理程序,您可以在 php manual 中找到如何执行此操作的示例。 .它更像是 hack,但肯定会起作用。如果它不会那么这意味着根本没有触发错误然后你应该看看你是否编辑了正确的 php.ini 或在错误被触发之前使用 ini_set() 。

关于PHP - error_log() 不会打印到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49141486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com