2011-09-13 10 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 

の詳細は以下のとおりです。

Magentoのは/ショップと呼ばれるフォルダに座っている
ftp.mysite.com.au 
myftpusername 
myftppassword 
install path: public/www/shop (advise by web host to use this) 

助けてください。私はこのサイトと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、特に**のマークが付いていない可能性があります。私はそれらをやって、OKと思われるモジュールの1つのインストールを実行しますが、私はそれらについて保証しません。彼らはまた、いくつかの場所でちょっと混乱している、私は彼らが改善することができると確信している - 場合によってはmagento_rootを取得するより良い方法があるかもしれません。異なるサブフォルダにも同様の名前のファイルが存在することに注意してください。

まだ、彼らは私が今日持っていた迷惑を通過する誰かを救うかもしれないことを願っています。 Varienが独自のtmpDir関数を書いて管理者の一時フォルダを指定できるようにしたら、大した助けになるでしょう。まぁ。

ダウンローダ\ libに\メイジ\接続\ config.phpの、ライン207:

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

ダウンローダ\ libに\メイジ\接続\コマンド\レジストリ。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/'; 

ダウンローダ\ Maged \ Controller.php、869 **:

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

この1は、あなたの設定の変更を保存するために必要とされています ダウンローダ\ Maged \モデル\ Connect.php、404:

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

ダウンローダ\ Maged \モデル\ 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:135周り

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

、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

magento-connectがconnect.cfgファイルを書き込むことができるように、一時的に "downloader"ディレクトリのchmodを777に設定して(それを元に戻します)。

0

このエラーは、ツールが「connect.cfg」に設定を保存できなかったために表示されます。

この問題を解決するには、最初にアクセス権を666 connect.cfgファイル "ディレクトリにある/ Downloader Magentoに変更してください。Magento Connectにアクセスして" Settings "タブを選択してください。 」。

0

あなたはMagentoの接続にアクセスし、あなたが書き込み権限をチェックするために言っていた場合は、この問題を解決するための簡単な方法があります。

があなたのSSHクライアントを開き、Magentoのをインストールしたディレクトリに移動します。あなたはそこにされたら、以下のコマンドをコピーして貼り付けます。

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

あなたがcPanelのサーバー上にある場合は、この実行する必要があります。

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

(またはちょうどあなたのファイルマネージャに移動し、755を選択します)

cpanelのMagnetoサイトは、777に設定された権限では動作しません!これにより、すべてのディレクトリのアクセス権が書き込み可能に変更され、今すぐMagento Connectを使用できるようになります。

あなたはまた、適切にMagentoの接続パッケージをインストールできるようにするには梨のダウンロードファイルのパーミッションを変更する必要があります。

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

あなたはMagentoの接続で実行する必要がありました何をやった後、アクセス許可をリセットします。

注:PHPがApacheモジュール(mod_php、DSO)として動作しているホスティング環境では、通常このエラーが表示されます。つまり、Magento Connectを使用しようとすると、ユーザー名ではなくユーザーnobodyとして実行されます。 Magentoをアップグレードするには、SSHを使用する必要があります。

関連する問題