【问题标题】:WordPress issue causing massive error logsWordPress 问题导致大量错误日志
【发布时间】:2017-12-05 07:28:40
【问题描述】:

我有一个问题导致错误日志每天都大量增长。

[Thu Jan 30 08:55:55 2014] [warn] [client 2.102.44.72] mod_fcgid: stderr: PHP Warning: is_dir(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/var/www/vhosts/inspartnership.org.uk/:/tmp/) in /var/www/vhosts/inspartnership.org.uk/httpdocs/wp-includes/functions.php on line 1366

(我知道这是一个旧日志 - 但错误没有改变。)

这是 WordPress functions.php 中的违规行

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

现在站点运行正常(直到日志变得太大,然后我收到 500 错误) - 我知道是什么导致了问题 - 站点在共享主机上,并且正在尝试访问外部文件夹它的范围 - 我只是不知道如何解决它,老实说不知道从哪里开始!

以前有没有人遇到过这个问题,可以指出正确的方向。

谁能帮我确定 WordPress 的哪个部分经常调用这个函数来生成如此庞大的日志

用简单的话-我有点厚:-D

提前致谢

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    您正在使用共享主机。因此,您无法访问整个服务器。根据您的日志,这些是您的网站 /var/www/vhosts/inspartnership.org.uk/ /tmp/ 的允许路径,并且您正在尝试访问 / 目录,因此导致问题发生。

    您可以使用这些 wordpress 内置函数为您解决此问题。

    主题

    http://codex.wordpress.org/Theme_Development#Anatomy_of_a_Theme

    对于插件

    Plugin Files and Locations

    其他几个参考问题

    Retrieve WordPress root directory path?

    【讨论】:

    • 嗨 abihineet - 是的,谢谢 +1 - songdogtech 实际上为我的特定问题提供了正确的解决方案
    • @GrahamRitchie 很高兴听到这个消息。我问是因为你没有接受任何答案。实际上,如果我们得到一个答案,我们应该接受。 :)
    • 有了 2k exp,我知道那是甜蜜的 :-P 我只是没有参加 SO,因为我最终自己解决了!感谢您的输入
    【解决方案2】:

    php的open_basedir是主机配置;这不是 Wordpress 核心的错误或问题。

    1) 让您的主机关闭 php safe_mode 关闭。运行safe_mode on 是没用的。

    http://www.php.net/manual/en/features.safe-mode.php

    2) 从 web 主机获取 tmp 目录的路径。编辑 wp-config.php 文件并添加这一行:

    define('WP_TEMP_DIR','../../relative/path/to/tmp');

    3) 寻找新主机。

    【讨论】:

      【解决方案3】:

      显然 $target 的基本路径“低于”运行 php 实例的用户允许的基本路径。根据日志文件,允许的路径是“/tmp/”和“/var/www/vhosts/inspartnership.org.uk/”。我假设您的 WP 安装中缺少一些配置。很有可能,它只是临时文件的位置。您最近是否将您的网站移动到另一台服务器? 如果它们仍然与您当前服务器环境的位置匹配,请查看“wp-config.php”中的设置。

      【讨论】:

        【解决方案4】:

        当上传路径更改为您网站主目录之外的目录时,可能会发生这种情况,我已经见过几次了;通常当人们在路径的开头添加斜杠时。这样的设置可能不会导致任何问题,直到托管帐户中的主目录路径发生更改,例如站点迁移时或托管服务更改路径时。

        它可以创建巨大的日志文件,有时会耗尽整个服务器上的磁盘空间,导致多个网站出现故障。

        upload_path 选项可以在“设置”->“媒体”标签下的“将上传内容存储在此文件夹中”中找到。 注意: 从 3.5 版开始,该选项是隐藏的,除非您已经有一个非默认路径(wp-content/uploads 以外的任何路径)。

        如果由于任何原因您无法访问 WordPress 管理员,但您确实可以访问数据库,只需删除 wp_options 表中 upload_path 的值即可。

        您可以通过查询在 phpMyAdmin 中找到该行:

        SELECT * FROM `wp_options` where option_name = 'upload_path'
        

        从那里,您可以单击 option_value 字段并对其进行编辑,然后只需单击字段外部即可保存更改。

        【讨论】:

        • 这是我在接管一个有问题的 Wordpress 网站后遇到的问题,所以感谢您的提示 :)
        【解决方案5】:

        您可能已经解决了该问题,但为了将来参考,我想在此处添加此问题,因为建议的解决方案都不适合我。

        我遇到了同样的错误日志增加,几乎立即耗尽了我 VPS 上的所有磁盘空间。

        找到问题的根源需要一些时间,因为它并非一直都在发生。就我而言,这不是 safe_mode 的问题,也不是更新 wp-config 以设置临时目录:问题在于 Wordpress 网站最初是一个博客网站,后来迁移到了 Wordpress。一些帖子的 wp_postmeta 行仍然指的是博客网站......这些行包含我们(显然)在允许路径之外的路径。删除触发“open_basedir 限制生效”错误的帖子的 wp_postmeta 行,解决了问题,此后我再也没有看到该错误。

        【讨论】:

          猜你喜欢
          • 2012-11-18
          • 1970-01-01
          • 2013-03-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-22
          • 1970-01-01
          • 2018-09-30
          相关资源
          最近更新 更多