万が一共有ホスティングしていますか?もしそうなら、これはあなたを助けるかもしれません。
私は、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_');
+1 connect.cfgファイルに無効なハードコードされたパスが含まれていました – snez