Magento Connect FTP设置

时间:2011-09-13 23:47:28

标签: magento ftp connect installation-path

当我配置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 个答案:

答案 0 :(得分:7)

将“downloader”目录的chmod临时设置为777(之后将其还原),以便magento-connect可以写入connect.cfg文件。

答案 1 :(得分:5)

可能没有任何操作,但我发现删除connect.cfg文件时很麻烦或连接管理器不会更改设置。

答案 2 :(得分:4)

您是否有机会共享主机?如果是这样,这可能会对您有所帮助。

我刚刚花了大半数时间搞乱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 root不再需要可写。

以下任何更改都可能会破坏Magento Connect,特别是标有**的更改。我已经完成了它们,然后运行一个模块似乎可以正常安装,但我不保证它们。它们在某些地方也有点混乱,我相信它们可以改进 - 在某些情况下可能有更好的方法来获得magento_root。请注意,在不同的子文件夹中有相似的命名文件。

尽管如此,希望他们可以拯救一些经历过今天滋扰的人。如果Varien只是编写自己的tmpDir函数并让你在admin中指定一个临时文件夹,那将是一个很大的帮助,节省了大量的麻烦。好吧。

downloader \ lib \ Mage \ Connect \ Config.php ,第207行:

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

downloader \ 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'); 

downloader \ 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');

在if语句之前大约135:

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

答案 3 :(得分:0)

显示此错误是因为该工具无法将您的设置保存在“connect.cfg”中。

要解决此问题,请首先将权限更改为666 connect.cfg文件“位于目录./ Downloader Magento。不久之后,访问Magento Connect并选择”设置“选项卡。最后,只需单击”保存设置“

答案 4 :(得分:0)

如果您访问Magento Connect并且它告诉您检查写入权限,则可以通过一种简单的方法来解决此问题。

打开SSH客户端并转到安装Magento的目录。进入后,复制并粘贴以下命令:

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

如果您在cPanel服务器上,则需要执行此操作:

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

(或者只是转到您的文件管理器并选择755)

cpanel上的Magneto网站无法使用设置为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时,它将以用户nobody而不是您的用户名运行。您必须使用SSH来升级Magento。