web-dev-qa-db-ja.com

「アップデートパッケージのダウンロードに失敗しました。」 3.6.2にアップグレードしようとしたとき

現在のバージョンは3.6.0です。 3.6.2に直接アップグレードしようとすると、常に次のエラーメッセージが表示されます。

更新パッケージのダウンロードに失敗しました。

同じサイトで何度かアップグレードを行いましたが、この問題に遭遇したことはありません。 configuration.phpファイルを確認しました。/tmpフォルダーは0755に設定されています。エラーログも確認しましたが、失敗に関する情報はありません。

何が原因である可能性があり、どこで「ダウンロード失敗」よりも詳細なエラーメッセージを入手できますか?このサイトを自分の仮想サーバーでホストしています。

4
shenkwen

Joomlaアップグレードパッケージをダウンロードして、FTPを使用してtmpフォルダーに配置できます。

次に、インストールを再度実行します。それが動作します。

5
Joomler

Joomla更新コンポーネントが更新されていることを確認します。 Clear Cache そして Find Updates ExtensionsManageの下更新

Joomla Update Component Update

Akeeba Backupがインストールされている場合は、念のために更新されていることを確認してください。

2
johanpw

ファイル/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の同じソリューション)

1

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
1
Bjorn Nuyttens

私は少しデバッグを行いましたが、ダウンロードされているファイルのようです-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要求を行う方法を誰かが知っていますか?.

現在、ここにはコメントを追加できないので、代わりにこれを書きました。

0
Ben Trewern