加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 16:10:23 所属栏目:PHP教程 来源:网络整理
导读:标题几乎说明了一切.我一直在试着整天都在努力工作.我正在创建基于 PHP的登录系统,我需要做一些调试.对我来说,最有用的是能够在整个PHP程序的某些点将调试消息写入文件.根据文档,看起来这就是error_log()应该做的事情,但尽管我尝试了一切,但我完全没有成功.
标题几乎说明了一切.我一直在试着整天都在努力工作.我正在创建基于 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.0和php7.0,无济于事
>基本上,在跳到我的预期死亡之前,我的笔记本电脑一下子就打破了我办公楼的第三层窗户

我真的找不到其他东西试试谷歌,所以我想我会问专家,我在这里.如果有人可以提供任何建议,将不胜感激.

解决方法

我想日志是写入sys日志的,因为在error_log()中你没有提供目的地.

请尝试以下代码

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

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

3表示目标是文件

如果你使用apache,那么检查httpd.conf或任何其他地方(v可能出现ErrorLog的位置

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找到如何做的例子.它更像是黑客,但它肯定会起作用.如果它不会那么它意味着根本没有触发错误那么你应该看看你是否编辑了正确的php.ini或者在触发错误之前使用ini_set().

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读