5

When I am configuring the settings for Magento Connect I get the following error:

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

The details I use are:

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

Magento sits in a folder called /shop

Any help. I have looked on this site and the Magento forums and have not found a solution.

4

5 回答 5

7

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

于 2012-01-03T10:29:03.153 回答
5

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

于 2011-10-27T20:33:32.973 回答
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 根不再需要是可写的。

以下任何更改都可能会破坏 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'); 

为了保存您的配置更改需要这个: downloader\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_');
于 2011-09-28T01:15:25.710 回答
0

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

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

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

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

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

(或者只是去你的文件管理器并选择 755)

如果权限设置为 777,您在 cpanel 上的 Magneto 站点将无法工作!这会将所有目录的权限更改为可写,您现在应该可以使用 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。

于 2014-02-23T12:44:45.047 回答
0

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

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

于 2013-12-13T04:53:04.077 回答