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.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...