gpt4 book ai didi

PHP - 尝试使用 error_log() 记录会导致 500 错误

转载 作者:可可西里 更新时间:2023-11-01 00:48:04 25 4
gpt4 key购买 nike

我有一个 IIS 服务器,它通过 fastcgi 为 PHP 提供服务。当错误日志文件被 IIS_IUSRS 组(IIS 用户在其下运行的组)以外的用户写入时,IIS 将无法写入该文件,PHP 将调用 error_log()导致 500 错误。 (至少这是我的猜测,就像我删除了日志文件一样,错误消失并且重新创建了日志文件)。

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

编辑:明确地说,我知道我可以通过停止记录、记录到事件日志或不同的位置等来阻止它,但这不是我的意思。我的意思是我只是想防止 500 错误,我不太关心我的系统无法记录它应该在尝试时破坏站点。这正是它可能有的最糟糕的行为。我只希望 500 错误不会发生,网站继续工作。

最佳答案

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

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

error_reporting(E_NONE);

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

ini_set('error_log', 'syslog');

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

对此没有 Elixir ,您可以更改计划任务,使其具有与 PHP 进程相同的 UID/GID,或者您可以停止在 scheduled_task 中登录。

关于PHP - 尝试使用 error_log() 记录会导致 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13704109/

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