現在のバージョンは3.6.0です。 3.6.2に直接アップグレードしようとすると、常に次のエラーメッセージが表示されます。
更新パッケージのダウンロードに失敗しました。
同じサイトで何度かアップグレードを行いましたが、この問題に遭遇したことはありません。 configuration.phpファイルを確認しました。/tmpフォルダーは0755に設定されています。エラーログも確認しましたが、失敗に関する情報はありません。
何が原因である可能性があり、どこで「ダウンロード失敗」よりも詳細なエラーメッセージを入手できますか?このサイトを自分の仮想サーバーでホストしています。
Joomlaアップグレードパッケージをダウンロードして、FTPを使用してtmpフォルダーに配置できます。
次に、インストールを再度実行します。それが動作します。
ファイル/administrator/components/com_joomlaupdate/models/default.php
この文字列を検索:
if (!$result || ($result->code != 200 && $result->code != 310))
新しいコードを追加します。
if (!$result || ($result->code != 200 && $result->code != 310 && $result->code != 303 && $result->code != 302))
以上です。
(新しいバージョン3.6.5の同じソリューション)
Joomlaを3.6.2から3.6.3に更新しようとすると、同じ問題が発生しました。最初のインスタンスでは、zipfileをアップロードし、その方法で更新を実行できました。したがって、簡単な方法を求めているすべての人にとっては、更新zipファイルをダウンロードして、その方法で更新を行うだけです。
とにかく、2番目の3.6.2インスタンスでは、リダイレクトを追跡するようにコードにパッチを適用しました。 3.6.3へのアップデートが成功しました!そしてもちろん、それは私のパッチを当てられたコードを上書きしました。 :-))
私が基本的に行ったのは、ファイルlibraries/joomla/http/transport/stream.phpのJHttpTransportStream.request()関数にパッチを適用することです
#BNN DEBUG BEGIN
// OLD CODE
// return $this->getResponse($headers, $content);
// NEW CODE
$response = $this->getResponse($headers, $content);
if($response->code==302 && $options['follow_location']==1) {
//received HTTP/302 Redirect, find "Location:" header
error_log('BNN DEBUG Location='.$response->headers['Location']);
return $this->request($method, new JUri($response->headers['Location']), $data, $headers, $timeout, $userAgent);
}
return $response;
#BNN DEBUG END
私は少しデバッグを行いましたが、ダウンロードされているファイルのようです-Joomla_3.6.2-Stable-Update_Package.Zipはリダイレクトの背後にあります。 com_joomlaupdate/models/default.phpの315行目で、次のようにしています。
// Download the package
$result = $http->get($url);
$ result-> code = 302を取得しますが、ファイルがダウンロードされません。ここでいくつかのエラーチェックが必要ですが、私はJoomlaについて何を言うのか十分に知りません。私はそれが正しい修正だと思うので、リダイレクトに従ってファイルをダウンロードするようにこのget要求を行う方法を誰かが知っていますか?.
現在、ここにはコメントを追加できないので、代わりにこれを書きました。