Magento CONNECT ERROR:无法打开文件

时间:2013-11-03 10:39:19

标签: php magento

我在使用magento connect安装扩展时遇到了一些麻烦。当我开始安装扩展时,outline终端会写下这样的内容:

  

检查包的依赖关系安装包社区/ OrganicInternet_SimpleConfigurableProducts 0.7.4

     

CONNECT ERROR:无法打开文件   /var/www/magento/downloader/.cache/community/OrganicInternet_SimpleConfigurableProducts-0.7.4/app/code/community/OrganicInternet/SimpleConfigurableProducts/Catalog/Model/Product/Type/Configurabl

我检查了路径,然后找到了所需的文件。如您所见,权限应该没问题; - )

  

drwxrwxrwx 2 www-data www-data 4.0K 11月3日11:10 Configurabl

我不知道该怎么做。我正在使用PHP 5.5.4-1 - 所以应该没问题。

你知道该怎么做吗?

6 个答案:

答案 0 :(得分:10)

开始

  

下载\ lib中\法师\存档\ Tar.php

查找方法

_extractFileHeader().

然后找到近代码行no 563:

if (!($header['name'] == '././@LongLink' && $header['type'] == 'L')) {
  $header['name'] = trim($header['name']);
  return $header;
}

并将其替换为:

if (!(trim($header['name']) == '././@LongLink' && $header['type'] == 'L')) {
 $header['name'] = trim($header['name']);
 return $header;
}

enter image description here

参见dev。评论:enter link description here

答案 1 :(得分:2)

欢迎来到PHP's error control operator的暴政。在暴政的地方,我的意思是在宏伟的计划中轻微的烦恼。

所有这些控制台错误都是由异常驱动的。如果您在downloader中搜索Magento Connect来源,则会找到例外文本

  

无法打开文件

仅在三个地方使用

$ ack 'Failed to open file'
lib/Mage/Archive/Helper/File/Bz.php
47:            throw new Mage_Exception('Failed to open file ' . $this->_filePath);

lib/Mage/Archive/Helper/File/Gz.php
44:            throw new Mage_Exception('Failed to open file ' . $this->_filePath);

lib/Mage/Archive/Helper/File.php
190:            throw new Mage_Exception('Failed to open file ' . $this->_filePath);

如果你看看每个地方,你会看到类似的模式

protected function _open($mode)
{
    $this->_fileHandler = @bzopen($this->_filePath, $mode);

    if (false === $this->_fileHandler) {
        throw new Mage_Exception('Failed to open file ' . $this->_filePath);
    }
}

protected function _open($mode)
{
    $this->_fileHandler = @fopen($this->_filePath, $mode);

    if (false === $this->_fileHandler) {
        throw new Mage_Exception('Failed to open file ' . $this->_filePath);
    }
}

protected function _open($mode)
{
    $this->_fileHandler = @gzopen($this->_filePath, $mode);

    if (false === $this->_fileHandler) {
        throw new Mage_Exception('Failed to open file ' . $this->_filePath);
    }
}

构建Magento Connect的开发人员使用@运算符来抑制从gzopenfopenbzopen发出的实际PHP错误。

如果我遇到你的情况,我会暂时编辑这些文件以从这些函数调用中删除@运算符,然后检查我的错误日志/浏览器输出以查看为什么PHP不想打开这些文件。

答案 2 :(得分:2)

在这种情况下,错误来自一个php安全模块,用于检查上传文件。在包中的一个提取文件中似乎有一些非ascii字符,一旦遇到它们就会停止处理文件,因此“Configurabl”被缩短了。

要解决此错误,您需要做的是调整上传器安全模式的设置,但很可能您无法访问该错误。另一种选择是以其他方式下载包(在这种情况下,它可以在https://github.com/organicinternet/magento-configurable-simple的Github上获得),解压缩并通过FTP上传文件。

答案 3 :(得分:0)

检查/var/www/magento/downloader/的所有者和权限。如果您有SSH /命令行访问权限,那么您可以像安装Magento安装的根目录一样安装扩展程序,如下所示:

./mage install http://connect20.magentocommerce.com/community OrganicInternet_SimpleConfigurableProducts

如果您在运行mage时遇到任何权限错误,请使用chmod 755 mage(或sudo chmod 755 mage)将权限更改为755。

答案 4 :(得分:0)

这里的实际问题是Magento Connect在使用php 5.5时有一个问题 - 它与路径长度有关,只在我本周更新到5.5后才开始。 - 如果这是您的问题(检查您的php版本),您有两个选择:您可以手动安装扩展程序或降级您的php版本。

我没有足够的信用点来表达答案,但我认为最好让人们知道ravi patel的TRIM解决方案解决了我的问题。

答案 5 :(得分:-1)

只需更改文件权限即可。 index.php文件给出644