当我配置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论坛,但没有找到解决方案。
答案 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。