Drupal Module安装错误 - 文件传输失败,原因:/mysite.com/sites/all/modules在/mysite.com之外

时间:2015-02-24 17:09:55

标签: php .htaccess drupal drupal-7

我在DEV和TEST服务器上的Windows 2012 R2(IIS 8.5)上安装了Drupal。它们是干净/开箱即用的安装。我的DEV环境工作正常,但我无法在TEST环境中安装模块。我试图找出不同的东西,但我一直在撞墙,他们看起来一模一样。显然他们不是。

问题

安装模块时,出现此错误:

  

安装失败!有关详细信息,请参阅下面的日志。

     

module_filter

     
    

•安装/更新错误

         

•文件传输失败,原因:/mysite.com/sites/all/modules在/mysite.com之外

  

(注意这是来自Authorize.php)

我的公共下载文件夹的权限似乎很好 - 模块上传和提取就好了。

我的公共文件系统路径设置为“sites / default / files”,我的临时目录设置为“sites / default / files / tmp”。

我无法弄清楚为什么它认为模块文件夹在我的根网站之外!

我很难过。任何帮助将不胜感激!!!

由于

汤姆亨德利

1 个答案:

答案 0 :(得分:3)

解决方案

事实证明,这是在IIS上运行的Drupal中的 bug filetransfer.inc checkPath 方法。区分大小写,因此根据您在IIS中设置网站的方式,它可能会起作用,也可能不起作用!这解释了为什么事情在我的DEV环境中起作用而不是TEST。

修改 includes / filetransfer / filetransfer.inc 中的 checkPath 方法并添加以下代码:

$full_path = strtolower($full_path);
$full_jail = strtolower($full_jail);

在路径比较之前:

if ($full_jail !== $full_path) { ... }

固定!

参考

非常感谢“sevenares”在此处发布此问题的解决方案: https://www.drupal.org/node/1071870#comment-8507091

我希望这有助于某人。

快乐的编码, 汤姆亨德利