警告:is_dir():open_basedir限制生效。文件(/)不在允许的路径

时间:2016-06-24 18:10:06

标签: php wordpress nginx open-basedir

编辑:open_basedir restriction in effect. File(/) is not within the allowed path(s):的副本。这个问题与PHP设置无关,因为我有几个网站在相同的地图结构和相同的PHP设置下工作。请在将其标记为重复之前阅读整个问题,正如我在本期最后4段中所解释的那样。另外,其他问题的答案都是针对Apache的,而我使用的是Nginx,它不使用CPanel或httpd.conf。

我已将我的Wordpress网站手动移至新服务器。对于最后一个,我收到此错误:

  Warning: is_dir(): open_basedir restriction in effect. File(/) is not
  within the allowed path(s):
    (/var/hpwsites/u_bcsautoborg:/usr/share/pear/) in 
    /var/hpwsites/u_bcsautoborg/website/html/webroot/wp-includes/functions.php on
 line 1585

之前我遇到过与该网站类似的错误,但这是因为upload文件夹没有从Wordpress设置正确链接。因此,错误显示不同的行号。

第1585行是:

while ( '.' != $target_parent && ! is_dir( $target_parent ) ) {

并且是更大块的一部分:

/*
     * Safe mode fails with a trailing slash under certain PHP versions.
     * Use rtrim() instead of untrailingslashit to avoid formatting.php dependency.
     */
$target = rtrim($target, '/');
if ( empty($target) )
    $target = '/';

if ( file_exists( $target ) )
    return @is_dir( $target );

// We need to find the permissions of the parent folder that exists


and inherit that.
    $target_parent = dirname( $target );
    while ( '.' != $target_parent && ! is_dir( $target_parent ) ) {
        $target_parent = dirname( $target_parent );
}

这是来自Wordpress功能文件。从代码开始,我假设问题出在$target_parent,但我不知道它指的是什么,因为我对PHP不是很好。

现在我知道open_basedir restriction错误通常意味着PHP.ini文件的安全设置不正确,不允许PHP函数访问所需的文件夹。但是,我确定这不是这种情况。

这是一个有效的网站,与我所有其他网站的结构相同。所有这些都托管在Apache服务器上,我移动到Nginx服务器,并且都有自己的目录,有自己的MySQL数据库,所有目录都包含相同的文件和文件夹(除了网站 - 特定的文件夹当然)。所有其他网站都在与此相同的设置中完美运行,因此我无法想象这是一个php.ini问题。

在上一个案例中,问题出现在'上传'文件夹,我仍然可以进入wp-admin并通过Wordpress设置更改上传文件夹位置。但是,我现在无法进入任何页面,因为我只得到上述错误,该错误重复到无穷大。

我通过PHPmyAdmin禁用了所有插件,但无济于事。显然,我已经在SO,wordpress论坛,Google和DuckDuckGo上寻找解决方案。我发现了许多类似的问题,但我找到的解决方案都没有为我工作。

有没有人知道原因可能在哪里?

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,并通过Google搜索遇到了这个问题。 @ hicham上面的评论让我走上正轨,这是我能够解决的问题,以防其他人在看。我通过phpMyAdmin编辑了数据库,如下所示:

  1. 点击wp_options表
  2. 单击“搜索”,然后在“option_name”字段中输入“upload_path”
  3. 这应该返回一行,旧主机的路径为“option_value”。双击要编辑的值,并将其更改为新主机上“uploads”文件夹的路径(您应该可以通过FTP或主机的控制面板找出它)。

答案 1 :(得分:3)

警告:is_dir()[function.is-dir]:open_basedir限制生效。文件(/)不在允许的路径中:

如果您在Wordpress博客上收到上述错误消息,可能的原因是您已将您的网站从之前的托管服务提供商转移给我们,并且您的主目录的路径现在是不同。幸运的是,修复非常简单。

登录您的Wordpress信息中心,点击'设置',然后点击'其他'并确保"商店上传到此文件夹"选项设置为:

可湿性粉剂内容/上传

如果已经设置为' wp-content / uploads' (没有引号),只需点击“保存”即可。按钮和Wordpress将重新计算您的主目录路径。现在错误应该消失,您的网站应该正常工作。