微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP – 尝试使用error_log()进行日志记录导致500错误

我有一个IIS服务器,通过fastcgi服务PHP.
当IIS_IUSRS组(IIS用户正在运行的组)中的用户写入错误日志文件时,IIS将无法写入该文件,并且对error_log()的PHP调用将导致500错误. (至少那是我的猜测,好像我删除了日志文件,错误消失并重新创建了日志文件).

无论如何我可以阻止500错误发生吗?

编辑:要清楚我知道我可以通过停止记录,记录到事件日志或不同位置等来阻止这一点,但这不是我的意思.我的意思是我只是想防止500错误,我不在乎我的系统无法记录它应该在尝试时破坏网站.这正是它可能产生的最糟糕的行为.我只是想要500错误没有发生,网站继续工作.

解决方法:

由于您的计划任务实际上正在更改错误日志文件的权限,因此我可以看到的唯一可行选项是:

1)使计划任务不写入error_log.将以下内容添加到cron作业的顶部:

使用error_reporting(E_NONE);

2)通过在计划任务(PHP文件)开始时发出以​​下命令,使计划任务写入系统日志(Windows中的事件查看器):

ini_set(‘error_log’,’syslog’);

3)如果以上所有内容都不适合您,您可以尝试将任务安排为IIS用户/组.这将确保满足权限并且不再导致错误500.

没有神奇的解决方法,您可以更改计划任务,使其具有与PHP进程相同的UID / GID,或者您可以停止登录scheduled_task.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐