开发者问题收集

PHP 错误日志 - 为什么我遇到这么多 openbase_dir 问题?

2019-06-25
618

首先,抱歉标题含糊。不知道如何措辞最好。我将从我的 php 日志副本开始。

这只是我的日志的一小部分。我假设我遇到了试图写入日志的编程错误,但这发生在大约 60 个子域的每个页面加载中。我最近才意识到这一点,因为出现了一些重大的速度问题。服务器负载正常,但最近运行多个 ajax 脚本的速度急剧下降。我希望这一切都是相关的,通过解决这个问题,速度问题就会解决。

我的主要问题是,与 php 错误无关,由于 openbase_dir 问题,它们无法写入。但是,正如您从日志中看到的那样,它甚至没有尝试写入相关文件夹。

子域: corrigansni 正尝试写入 choicerentals 的日志文件夹,即使它们不相关并且 choicerentals 子域不再存在。我也不知道哪个脚本正在尝试写入日志。

有人能回答以下问题吗:

  1. 在哪里可以设置更改写入日志的位置?
  2. 为什么我得到的是 第 0 行未知 而不是脚本位置
  3. 为什么每次页面加载和 ajax 调用都可能导致这种情况发生。

顺便说一句,我尝试更改我正在使用的 PHP 版本,但仍然遇到相同的问题。

提前致谢

编辑:一些人在其他地方提出了类似的问题。这其实不一样。那个问题问如何放宽 openbase_dir,我不想这样做。

我的问题有几个部分:

首先;它试图访问目录中不相关的文件夹。我该如何更改该位置。

其次,我的 openbase_dir 设置似乎是正确的,那么为什么它无法访问它呢?

第三,什么原因导致它尝试从未知位置写入 error_log 文件。

2个回答

您的 PHP 设置的 error_log 设置 的值不正确,该设置指向您已告知 PHP 不应写入的目录。这会导致在启动每个请求时出现警告,因为 PHP 会在到达 PHP 代码的第一行之前处理您的设置文件。由于它无法写入指定的日志文件,因此它会恢复为默认设置,即回显到“标准错误”,最终会将其拾取并放入您看到的通用日志文件中。

可以在多个位置设置配置变量,有关详细信息,请参阅 PHP 手册的运行时配置章节 ;例如,可能有一个或多个 php.ini 文件,以及从 Apache 配置文件传入的设置。要么是设置被错误地从一个站点复制到另一个站点,要么是在两个站点都使用的全局配置文件中设置的。

记录的特殊路径 ( C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log ) 表明设置本身就是错误的,除了提到错误的站点之外;可能它指定的是相对路径而不是绝对路径(以 C:\ 开头)。

正如评论中所指出的, open_basedir 设置似乎也是错误的,因为它似乎是 Linux 格式,而日志消息表明您正在 Windows 上运行。

IMSoP
2019-06-25

任何发现此问题的人都发现了我的问题。我的文件夹结构中有一个名为 .user.ini 的愚蠢小文件,它正在设置 Windows 路径。一定是来自我们以前使用的旧 Windows 服务器。

user1530205
2019-06-26