Magento CONNECT ERROR: Не удалось открыть файл

У меня возникли проблемы с установкой расширений с помощью magento connect. Когда я начинаю устанавливать расширение, контур терминала записывает что-то вроде этого:

Проверка зависимостей пакетов Установка сообщества пакетов / 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 3 ноября 11:10 Конфигурация

Я понятия не имею, что делать. Я использую PHP 5.5.4-1 – так что все должно быть хорошо.

Вы знаете, что делать?

Solutions Collecting From Web of "Magento CONNECT ERROR: Не удалось открыть файл"

Ошибка в этом случае исходит из модема безопасности php, который проверяет файлы при загрузке. Кажется, что в одном из извлеченных файлов из пакета есть некоторые символы не-ascii, и как только он встречается с ними, он останавливает обработку файла, поэтому «Configurabl» прерван.

Что вам нужно сделать, чтобы пройти эту ошибку, либо отрегулируйте настройки вашего режима безопасности для пользователей, но, скорее всего, у вас нет доступа к этому. Другой вариант – загрузить пакет другим способом (в этом случае он доступен в Github по адресу https://github.com/organicinternet/magento-configurable-simple ), извлеките его и загрузите файлы через FTP.

Идти

Загрузчик \ 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; } 

введите описание изображения здесь

См. На dev. комментарий: введите ссылку здесь.

Добро пожаловать в тиранию оператора управления ошибками 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, использовали оператор @ для подавления реальных ошибок PHP, которые испускаются из gzopen , fopen и bzopen .

Если бы я был в вашей ситуации, я бы временно отредактировал эти файлы, чтобы удалить оператор @ из этих вызовов функций, а затем проверить мои журналы ошибок / вывода браузера, чтобы узнать, почему PHP не хотел открывать эти файлы.

Проверьте владельца и разрешения /var/www/magento/downloader/ . Если у вас есть доступ к SSH / командной строке, вы можете установить расширение, например, из корня вашей установки Magento следующим образом:

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

Если вы получаете какие-либо ошибки разрешения на запуск mage измените разрешения на 755 с помощью chmod 755 mage (или sudo chmod 755 mage ).

Фактическая проблема здесь заключается в том, что Magento Connect имеет проблему при использовании php 5.5 – его длина пути, только начинается, как только я обновляюсь до 5.5 на этой неделе. – если это ваша проблема (проверьте свою версию php), у вас есть 2 варианта: вы можете установить расширение вручную или понизить версию вашего php.

У меня недостаточно очков, чтобы проголосовать за ответ, но я подумал, что лучше всего сообщить людям, что решение TRIM в ravi patel решило мою проблему.

просто измените права доступа к файлам. index.php, чтобы дать 644