我在使用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 - 所以应该没问题。
你知道该怎么做吗?
答案 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;
}
参见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的开发人员使用@
运算符来抑制从gzopen
,fopen
和bzopen
发出的实际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