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

时间:2019-06-25 12:38:04

标签: php error-log open-basedir

首先,对模糊的标题表示歉意。不确定如何最好地措辞。我将从复制我的php日志开始。

[25-Jun-2019 12:21:44] WARNING: [pool corrigansni.ivech.co.uk] child 58505 said into stderr: "NOTICE: PHP message: PHP Warning:  Unknown: open_basedir restriction in effect. File(C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log) is not within the allowed path(s): (/var/www/vhosts/ivech.co.uk/:/tmp/) in Unknown on line 0"
[25-Jun-2019 12:21:44] WARNING: [pool corrigansni.ivech.co.uk] child 58504 said into stderr: "NOTICE: PHP message: PHP Warning:  Unknown: open_basedir restriction in effect. File(C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log) is not within the allowed path(s): (/var/www/vhosts/ivech.co.uk/:/tmp/) in Unknown on line 0"
[25-Jun-2019 12:21:45] WARNING: [pool corrigansni.ivech.co.uk] child 58499 said into stderr: "NOTICE: PHP message: PHP Warning:  Unknown: open_basedir restriction in effect. File(C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log) is not within the allowed path(s): (/var/www/vhosts/ivech.co.uk/:/tmp/) in Unknown on line 0"
[25-Jun-2019 12:21:45] WARNING: [pool corrigansni.ivech.co.uk] child 58456 said into stderr: "NOTICE: PHP message: PHP Warning:  Unknown: open_basedir restriction in effect. File(C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log) is not within the allowed path(s): (/var/www/vhosts/ivech.co.uk/:/tmp/) in Unknown on line 0" 

那只是我日志的一小部分。我假设我有尝试写入日志的编程错误,但这发生在大约60个子域的每个页面加载中。由于最近一些重大的速度问题,我才意识到这一点。服务器负载很好,但是最近运行多个ajax脚本的速度已大大降低。我希望这都是相关的,并且通过解决此问题可以解决速度问题。

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

子域: corrigansni 试图写入 choicerentals 的日志文件夹,即使它们不相关并且选择租赁子域不再存在。我也没有被告知哪个脚本正在尝试写日志。

任何人都可以回答以下问题:

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

作为一个附带说明,我尝试更改所使用的PHP版本,但仍然遇到相同的问题。

预先感谢

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

我的问题包括几个部分:

首先;它正在尝试访问与目录无关的文件夹。如何更改该位置。

第二;我的openbase_dir设置似乎是正确的,所以为什么它无法访问它。

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

2 个答案:

答案 0 :(得分:0)

您的PHP设置的the error_log setting值不正确,它指向您告诉PHP不应写入的目录。这会在每个请求启动期间引发警告,因为PHP在到达PHP代码的第一行之前会处理您的设置文件。由于它无法写入指定的日志文件,因此它会退回到默认值,即呼应“标准错误”,最终将其提取并放入您看到的通用日志文件中。

the Runtime Configuration chapter of the PHP manual中讨论了可以在几个地方设置配置变量的地方;例如,可能有一个或多个php.ini文件,并且设置是从Apache配置文件传入的。要么该设置已被错误地从一个站点复制到另一个站点,要么正在两个站点使用的全局配置文件中进行设置。

记录的特殊路径(C:\Inetpub\vhosts\ivech.co.uk\logs\php_errors\choicerentals.ivech.co.uk\php_error.log)提示设置正确,除了提及错误的站点外;可能是指定相对路径而不是绝对路径(从C:\开始)。

正如注释中指出的那样,open_basedir设置似乎也有误,因为它似乎是Linux格式,而日志消息表明您正在Windows上运行。

答案 1 :(得分:0)

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