Настройки FTP Magento Connect - PullRequest
       34

Настройки FTP Magento Connect

5 голосов
/ 14 сентября 2011

Когда я настраиваю настройки для Magento Connect, я получаю следующую ошибку:

    Deployment FTP Error. Local file doesn't exist:
    Settings has not been loaded. Used default settings
    Config file does not exists please save Settings

Подробности, которые я использую:

ftp.mysite.com.au
myftpusername
myftppassword
install path: public/www/shop (advise by web host to use this)

Magento находится в папке / shop

Любая помощь. Я просмотрел этот сайт и форумы Magento и не нашел решения.

Ответы [ 5 ]

7 голосов
/ 03 января 2012

Установите временную переменную chmod для каталога "Downloader" в 777 (и затем верните его обратно), чтобы magento-connect мог записать файл connect.cfg.

5 голосов
/ 28 октября 2011

Возможно, с этим ничего не поделать, но я обнаружил, что удаление файла connect.cfg, когда это хлопотно, или менеджер соединений не изменяет настройки.

4 голосов
/ 28 сентября 2011

Вы случайно находитесь на виртуальном хостинге? Если это так, это может помочь вам.

Я только что провел большую часть дня, балуясь с Magento Connect Manager 2.0, пытаясь заставить его работать с опцией FTP. Я даже не смог заставить его сохранить какие-либо свои настройки на вкладке настроек, он просто возвращался к настройкам по умолчанию.

Я в конечном итоге отследил проблему до настойчивости Magento при использовании sys_get_temp_dir для определения временного каталога. Обычно это не работает на виртуальном хостинге, так как у вас не будет доступа на запись в / tmp. К сожалению, при сбое не возникает никаких ошибок, и Magento просто продолжает работу, но не сохраняет и не загружает настройки Magento Connect FTP. У меня была похожая проблема в другом месте в коде ядра раньше.

Я создал временную папку под своей основной установкой в ​​/ var / tmp и сделал ее доступной для записи всем пользователям.

В / downloader и / lib / Mage есть 11 мест, которые используют эту функцию для определения временной папки. Их нужно будет изменить, чтобы они указывали на то место, куда вы решили поместить временную папку. Я не уверен, что все они должны быть изменены, или точно, что они все делают, но я изменил их, чтобы быть на безопасной стороне. Подробности в конце поста. Номера строк являются приблизительными, но просто найдите sys_get_temp_dir в каждом файле.

После внесения изменений вам необходимо убедиться, что следующие папки доступны для записи во всем мире, рекурсивно:

/var/package/tmp/
/downloader/.cache
/media

Плюсом опции FTP является то, что корень Magento больше не нуждается в записи.

Любые изменения, приведенные ниже, могут привести к поломке Magento Connect, особенно те, которые отмечены **. Я сделал их и запустил одну установку модуля, которая вроде бы прошла нормально, но я не даю на них никаких гарантий. В некоторых местах они также немного беспорядочные, я уверен, что их можно улучшить - в некоторых случаях может быть лучший способ получить magento_root. Будьте осторожны, файлы с одинаковыми именами находятся в разных подпапках.

Тем не менее, надеюсь, что они могут спасти кого-то, преодолев неприятности, которые у меня были сегодня. Было бы очень полезно, если бы Varien просто написал свою собственную функцию tmpDir и позволил бы вам указать временную папку в админке, сэкономив массу хлопот. Ах, хорошо.

загрузчик \ lib \ Mage \ Connect \ Config.php , строка 207:

//  $tempFile = tempnam(sys_get_temp_dir(),'config');
$tempFile = tempnam($this->magento_root. '/var/tmp/' ,'config');

Загрузчик \ lib \ Mage \ Connect \ Command \ Registry.php , строка 315:

//$localXml = tempnam(sys_get_temp_dir(),'package');
$magento_root =  dirname(dirname(__FILE__)) . '/../../../..';
$localXml = tempnam($magento_root. '/var/tmp/' ,'package'); 

Загрузчик \ lib \ Mage \ Connect \ Loader \ Ftp.php , строка 107:

//   $tmpDir = sys_get_temp_dir();
$magento_root =  dirname(dirname(__FILE__)) . '/../../../..';
$tmpDir = $magento_root . '/var/tmp/';

загрузчик \ Maged \ Controller.php , 869 **:

//$tempFile = tempnam(sys_get_temp_dir(),'maintenance');
$tempFile = tempnam($config->__get('magento_root') . '/var/tmp/' ,'maintenance'); 

Это необходимо для сохранения изменений конфигурации: Загрузчик \ Maged \ Model \ Connect.php , 404:

//$tempFile = tempnam(sys_get_temp_dir(),'config');
$tempFile = tempnam($configObj->magento_root. '/var/tmp/' ,'config');

Загрузчик \ Maged \ Model \ Config \ Abstract.php , 88 **:

//  $tempFile = tempnam(sys_get_temp_dir(),'configini');
$magento_root =  dirname(dirname(__FILE__)) . '/../../..';  
$tempFile = tempnam($magento_root. '/var/tmp/' ,'configini');

downloader \ lib \ Mage \ Connect \ Packager.php - остальные 5 изменений находятся в этом файле.

Строка 96 - Я полагаю, что это было то, что нужно для загрузки изменений конфигурации на экран настроек:

// $tempConfigFile = tempnam(sys_get_temp_dir(),'conf');
$magento_root =  dirname(dirname(__FILE__)) . '/../../..';
$tempConfigFile = tempnam($magento_root . '/var/tmp/' ,'conf');

строка 111:

// $tempCacheFile = tempnam(sys_get_temp_dir(),'cache');
$magento_root =  dirname(dirname(__FILE__)) . '/../../..';
$tempCacheFile = tempnam($magento_root . '/var/tmp/' ,'cache');

Около 135, перед оператором if:

$magento_root =  dirname(dirname(__FILE__)) . '/../../..';

затем в частях if и else:

//  $configFile=tempnam(sys_get_temp_dir(),'conf');
$configFile = tempnam($magento_root. '/var/tmp/' ,'conf');

158

//$tempConfigFile = tempnam(sys_get_temp_dir(),'conf_');
$magento_root =  dirname(dirname(__FILE__)) . '/../../..';
$tempConfigFile = tempnam($magento_root. '/var/tmp/' ,'conf_');
0 голосов
/ 23 февраля 2014

Если вы заходите в Magento Connect и он говорит вам проверить права на запись, есть простой способ исправить это.

Откройте ваш SSH-клиент и перейдите в каталог, где установлен Magento.Когда вы окажетесь там, скопируйте и вставьте следующую команду:

find . -type d -exec chmod 777 {} ;

Если вы находитесь на сервере cPanel, вам нужно сделать это:

find . -type f -exec chmod 755 {} ;

(или просто перейти к своему файлувыберите 755)

Ваш сайт Magneto на cpanel не будет работать с разрешениями, установленными на 777! Это изменит разрешения для всех каталогов на доступные для записи, и вы сможете использоватьMagento Connect прямо сейчас.

Вам также может потребоваться изменить разрешения для загружаемого файла Pear, чтобы иметь возможность правильно устанавливать пакеты Magento Connect:

chmod 777 downloader/pearlib/download/package.xml
Magento Connect write permissions error 

После того, как вы сделали то, что вы 'нам нужно сделать в Magento Connect, сбросить ваши права доступа.

ПРИМЕЧАНИЕ. Эта ошибка обычно возникает в средах хостинга, где PHP работает как модуль Apache (mod_php, DSO).Это означает, что когда вы попытаетесь использовать Magento Connect, он будет работать под именем «никто» вместо вашего имени пользователя.Вы должны использовать SSH для обновления Magento.

0 голосов
/ 13 декабря 2013

Эта ошибка отображается, потому что инструмент не смог сохранить ваши настройки в «connect.cfg».

Чтобы решить эту проблему, сначала измените разрешение на файл 666 connect.cfg "лежащий в каталоге. / Downloader Magento. Вскоре после этого зайдите в Magento Connect и выберите вкладку" Настройки ". Наконец, просто нажмите" Сохранить настройки " .

...