【问题标题】:Wordpress creates bad path and is blocked by open_basedirWordpress 创建错误路径并被 open_basedir 阻止
【发布时间】:2013-10-10 14:04:29
【问题描述】:

我正在尝试将一些客户的网站迁移到我的新服务器上,但在 2 个具有相同设置的网站上出现以下错误。

PHP 警告:is_readable():open_basedir 限制生效。 文件(C:\Inetpub\vhosts\somedomain.com\httpdocs/http://www.somedomain.com/wp-content/plugins/knxdt-bookmarks-wordpress-plugin/lang/knxdt_bookmarks-en_US.mo) 不在允许的路径内: (;C:/Inetpub/vhosts/somedomain.com\;C:\Windows\Temp\;C:\Inetpub\vhosts\somedomain.com\httpdocs\;) 在 C:\Inetpub\vhosts\somedomain.com\httpdocs\wp-includes\l10n.php 上 第 339 行

从我认为是 Wordpress 传递的路径中可以看出,那里有问题(... \httpdocs/http://www.somedomain ...)。为什么路径会这样组合?这是 php、plesk 还是 wordpress 的问题?

我已经使用 Plesk admin 将 open_basedir 设置为 none,这两个站点都像一个魅力一样工作。

我的设置 老服务器: 视窗 2008 Plesk 9 PHP 版本 5.2.13

新服务器 视窗 2012 Plesk 11(撰写本文时最新) PHP 5.4 版

谢谢

【问题讨论】:

  • 不是真的,因为他是一个 linux 问题,而我的是 Windows。他的只是关于 open_basedir 而我的问题更多的是关于 open_basedir (...\httpdocs/http://...) 使用的路径。它来自哪里,尤其是为什么会有物理路径与网址相结合

标签: php windows wordpress plesk open-basedir


【解决方案1】:

这可能是插件中的一个错误,这里是bug in NextGen Gallery的例子

我在函数 load_plugin_textdomain 的第 565 行的文件 l10n.php 中做了一个通用的脏修复:

    .... 
if ( false !== $plugin_rel_path ) {
    $plugin_rel_path = preg_replace('/(^.+plugins)/', '', $plugin_rel_path); # this line added
    $path = WP_PLUGIN_DIR . '/' . trim( $plugin_rel_path, '/' );
} else if
    ... 

【讨论】:

    猜你喜欢
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    相关资源
    最近更新 更多