8

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

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

连接错误:无法打开文件 /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 Nov 3 11:10 Configurabl

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

你知道该怎么做吗?

4

6 回答 6

10

下载器\lib\Mage\Archive\Tar.php

查找方法

_extractFileHeader().

然后找到附近的代码行号 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;
}

在此处输入图像描述

见开发。评论:在此处输入链接描述

于 2014-10-21T07:04:45.293 回答
2

欢迎来到PHP 的错误控制运算符的专制。我所说的暴政是指宏伟计划中的小烦恼。

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

打开文件失败

只用在三个地方

$ 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 不想打开这些文件的原因。

于 2013-11-03T17:04:57.393 回答
2

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

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

于 2013-11-14T23:17:53.377 回答
0

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

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

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

于 2013-11-03T16:36:16.917 回答
0

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

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

于 2016-01-07T01:29:38.547 回答
-1

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

于 2015-05-04T09:12:34.170 回答