Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal模块安装错误-文件传输失败,原因:/mysite.com/sites/all/modules在/mysite.com之外_Php_.htaccess_Drupal_Drupal 7 - Fatal编程技术网

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

Php Drupal模块安装错误-文件传输失败,原因:/mysite.com/sites/all/modules在/mysite.com之外,php,.htaccess,drupal,drupal-7,Php,.htaccess,Drupal,Drupal 7,我已经在我的开发和测试服务器上安装了Windows 2012 R2(IIS 8.5)上的Drupal。它们是干净的/开箱即用的安装。我的开发环境工作正常,但我无法在测试环境中安装模块。我仔细检查了这些装置,试图找出它们的不同之处,但我一直把头撞在墙上,它们看起来一模一样。显然不是 问题 安装模块时,出现以下错误: 安装失败!有关更多信息,请参阅下面的日志 模块滤波器 •安装/更新错误 •文件传输失败,原因:/mysite.com/sites/all/modules在/mysite.com之外 (

我已经在我的开发和测试服务器上安装了Windows 2012 R2(IIS 8.5)上的Drupal。它们是干净的/开箱即用的安装。我的开发环境工作正常,但我无法在测试环境中安装模块。我仔细检查了这些装置,试图找出它们的不同之处,但我一直把头撞在墙上,它们看起来一模一样。显然不是

问题 安装模块时,出现以下错误:

安装失败!有关更多信息,请参阅下面的日志

模块滤波器

•安装/更新错误

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

(注意,这来自Authorize.php)

对我的公共下载文件夹的权限似乎很好——模块上传和提取都很好

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

我不明白为什么它认为modules文件夹在我的根站点之外

我被难住了。任何帮助都将不胜感激

谢谢

汤姆·亨德利

解决方案 事实证明,这是在IIS上运行的Drupal中的一个bug。filetransfer.inc的检查路径方法。区分大小写,因此根据您在IIS中设置站点的方式,它可能工作,也可能不工作!这解释了为什么在我的开发环境中工作而不是在测试环境中工作

编辑includes/filetransfer/filetransfer.inc中的checkPath方法,并添加以下代码:

$full_path = strtolower($full_path);
$full_jail = strtolower($full_jail);
在路径比较之前:

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

工具书类 非常感谢“sevenares”在此处发布此问题的解决方案:

我希望这对某人有帮助

快乐编码, 汤姆亨德利