2011-09-13 48 views
5

當我配置了Magento的連接的設置,我得到了以下錯誤:Magento的連接FTP設置

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的坐在一個名爲/店的文件夾中

任何幫助。我看過這個網站和Magento論壇,並沒有找到解決方案。

回答

4

您是否有共享主機?如果是這樣,這可能會幫助你。

我剛剛花了大部分時間與Magento Connect Manager 2.0混合在一起,試圖讓它與FTP選項一起工作。我甚至無法保存設置選項卡上的任何設置,只是保持恢復到默認設置。

我最終將問題追蹤到Magento堅持使用sys_get_temp_dir來確定臨時目錄。這通常不適用於共享主機,因爲您將不具有對/ tmp的寫入權限。不幸的是,當它失敗時沒有產生錯誤,而Magento只是繼續進行,但不保存或加載Magento Connect FTP設置。之前我在覈心代碼的其他地方也遇到類似的問題。

我在我的主要安裝位置/ var/tmp下創建了一個臨時文件夾,並使其成爲全局可寫的。

在/下載器和/ lib/Mage中有11個地方使用此函數來確定臨時文件夾。這些將需要更改爲指向您決定放置臨時文件夾的任何位置。我不確定是否所有這些都需要改變,或者確切地說他們都做了什麼,但是我改變了他們的安全意識。詳細信息在帖子末尾。行號是近似的,但只是在每個文件中搜索sys_get_temp_dir。

一旦你所做的更改,您需要確保下列文件夾是世界寫的,遞歸:

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

FTP選項的正側是Magento的根不再需要可寫。

以下任何更改可能會中斷Magento Connect,特別是標有**的那些更改。我已經完成了它們,並運行了一個模塊,但似乎沒有問題,但我對它們沒有任何保證。他們在某些地方也有點混亂,我相信他們可以改進 - 在某些情況下,獲得magento_root可能會更好。小心,在不同的子文件夾中有類似的命名文件。

不過,希望他們能挽救一個正在經歷我今天討厭的人。如果Varien只編寫他們自己的tmpDir函數並讓你在管理員中指定一個臨時文件夾,將會非常有幫助,省去很多麻煩。呃,好吧。

下載\ LIB \法師\連接\ config.php文件,行207:

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

下載\ LIB \法師\連接\ COMMAND \註冊表。PHP,線315:

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

下載\ lib中\法師\連接\裝載機\ Ftp.php,線107:

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

下載\馬吉德阿卜\ Controller.php這樣,869 **:

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

這一個是必要的,以保存配置的變化: 下載\馬吉德阿卜\模型\ Connect.php,404:

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

下載\馬吉德阿卜\模型\配置\ Abstract.php,88 **:

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

下載\ 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-140,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_'); 
5

可能不會有什麼做用,但我發現刪除connect.cfg文件時,它的麻煩或連接管理器不會更改設置。

+0

+1 connect.cfg文件包含一個硬編碼路徑無效 – snez

7

將「下載程序」目錄的chmod臨時設置爲777(並在之後恢復),以便magento-connect可以寫入connect.cfg文件。

0

顯示此錯誤是因爲該工具無法將您的設置保存在「connect.cfg」中。

要解決此問題,請先將權限更改爲666 connect.cfg文件「位於目錄./Downloader Magento。不久後,訪問Magento Connect並選擇」設置「選項卡。最後,單擊」保存設置」

0

如果您訪問的Magento Connect和它告訴你檢查寫權限,有一個簡單的方法來解決這個問題。

打開你的SSH客戶端並進入到安裝的Magento的目錄。一旦你在那裏,複製並粘貼以下命令:

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

如果你是一個的cPanel服務器上,你需要這樣做:

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

(或者只是去到你的文件管理器,並選擇755 )

上的cPanel您的磁網站不會設置爲777權限的工作!,這將改變權限的所有目錄可寫,你應該能夠使用Magento的連接了。

您可能還需要改變對梨下載文件的權限,以便能夠正確安裝Magento的連接包:

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

你做了之後你需要在Magento連接到做什麼,重置您的權限。

注意:您通常會看到這樣的錯誤在哪裏託管PHP運行作爲Apache模塊的環境(mod_php,並且DSO)。這意味着,當您嘗試使用Magento的連接,它會爲用戶nobody而不是你的用戶名運行。您必須使用SSH升級Magento。