2013-11-03 20 views
8

Mam pewne problemy z instalacją rozszerzeń z połączeniem Magento. Kiedy zaczynam instalować rozszerzenie, terminal konektorowy pisze coś takiego:Magento CONNECT ERROR: Nie można otworzyć pliku

Checking dependencies of packages Installing package community/OrganicInternet_SimpleConfigurableProducts 0.7.4

CONNECT ERROR: Failed to open file /var/www/magento/downloader/.cache/community/OrganicInternet_SimpleConfigurableProducts-0.7.4/app/code/community/OrganicInternet/SimpleConfigurableProducts/Catalog/Model/Product/Type/Configurabl

Sprawdziłem ścieżkę i znalazłem żądany plik. Jak widać uprawnienia powinny być dobre ;-)

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

nie mam pojęcia co zrobić. Używam PHP 5.5.4-1 - więc powinno być dobrze.

Czy masz pojęcie, co robić?

Odpowiedz

2

Błąd, w tym przypadku, pochodzi z modemu php, który sprawdza pliki podczas przesyłania. Wygląda na to, że w jednym z wyodrębnionych plików z pakietu znajdują się znaki spoza ASCII i gdy tylko napotkają je, zatrzymuje przetwarzanie pliku, dlatego "Configurabl" jest skrócony.

To, co musisz zrobić, aby ominąć ten błąd, to zmienić ustawienia modemu bezpieczeństwa przesyłającego, ale najprawdopodobniej nie masz do niego dostępu. Inną opcją jest pobranie pakietu w inny sposób (w tym przypadku jest on dostępny na Github pod numerem https://github.com/organicinternet/magento-configurable-simple), wyodrębnij go i prześlij pliki przez FTP.

+0

jak to naprawić http://magento.stackexchange.com/questions/40125/connect-error-failed-to -open-file-on-extension-package-testing –

0

Sprawdź właściciela i uprawnienia użytkownika /var/www/magento/downloader/. Jeśli masz ssh/polecenia dostępu do linii, to możesz zainstalować rozszerzenie jak z korzenia instalacji Magento jak ten:

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

Jeśli wystąpią jakiekolwiek błędy uprawnień działa mage następnie zmienić uprawnienia do 755 z chmod 755 mage (lub sudo chmod 755 mage).

+0

Próbowałem instalacji mag z dwoma różnymi rozszerzeniami. I mam dokładnie ten sam problem "install: Failed to open file" - Ustawiłem wszystkie uprawnienia na 777 do testowania, ale to niczego nie zmienia :( –

+0

Właśnie zauważyłem coś o twojej instalacji. Wygląda na to, że twoja nazwa jest cut off - 'Configurabl' .Czy masz jakiś limit długości ścieżki do pliku w twojej konfiguracji? – seanbreeden

+0

Nie mam teraz żadnych ograniczeń.Zasadniczo istnieje folder" Cofigurabl " Kiedy próbuję aby zainstalować inną aplikację, "brakujący" plik jest następujący: /downloader/.cache/community/m2epro_ebay_magento-6.0.7/app/code/community/Ess/M2ePro/Block/Adminhtml/Wizard/InstallationEbay/Installation/ModeConfirmation/ - Zasadniczo ten również istnieje –

2

Witamy w tyranii PHP's error control operator. Gdzie przez tyranię mam na myśli małe rozdrażnienie w wielkim schemacie rzeczy.

Wszystkie te błędy konsoli są obsługiwane przez wyjątki. Jeśli szukać źródła Magento Połącz w downloader, znajdziesz tekst wyjątku

Failed to open file

jest używany tylko w trzech miejscach

$ 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); 

Jeśli spojrzeć na każdy z tych miejsc, zobaczysz podobny wzór

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); 
    } 
} 

deweloperzy, którzy budowali Magento Połącz używane operatora @ tłumić prawdziwe błędy PHP, które emitują od gzopen, fopen i bzopen.

Gdybym był w twojej sytuacji, tymczasowo edytowałbym te pliki, aby usunąć operatora @ z tych wywołań funkcji, a następnie sprawdź moje logi błędów/wynik wyjściowy przeglądarki, aby zobaczyć, dlaczego PHP nie chce otwierać tych plików.

+0

Bardzo dobry pomysł! Próbowałem, ale dane wyjściowe są dokładnie takie same i nie ma nic (nowego) w moim dzienniku błędów :( –

10

Go

downloader\lib\Mage\Archive\Tar.php

metoda find

_extractFileHeader(). 

Potem znajdź linię kodu w pobliżu No 563:

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

i zastąpić go:

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

enter image description here

Zobacz na dev. komentarz: enter link description here

-1

wystarczy zmienić uprawnienia do pliku. Plik index.php daje 644

0

Rzeczywistym problemem jest to, że Magento Connect ma problem podczas korzystania z php 5.5 - jest to związane z długością ścieżki, Tylko zaczęło się, gdy zaktualizowałem do 5.5 w tym tygodniu. - jeśli to jest twój problem (sprawdź wersję PHP) masz 2 opcje: Możesz zainstalować rozszerzenie ręcznie lub obniżyć wersję PHP.

Nie mam wystarczająco dużo punktów, aby głosować na odpowiedź, ale pomyślałem, że najlepiej powiedzieć ludziom, że rozwiązanie TRIM firmy ravi patel rozwiązało mój problem.

Powiązane problemy