concrete5のアップデート

concrete5を新しいバージョンにアップデートする方法です。

アップデートの前に

concrete5サイトのアップデートの前に、必ずデータベースのバックアップを取得してください。バックアップが完了したら、アップデートに進みましょう。アップデートには、いくつかの方法があります。

concrete5には、ダウングレードする方法がありませんので、ご注意ください。

もしアップデートによってサイトが壊れてしまった場合は、バックアップからアップデート実施前の状態に戻す以外の方法はありません。

アップデートできるバージョン

  • 8.5.0以上にアップデートする前に、5.7.5.13にアップデートしてください。
  • 5.7.3未満のバージョン5.7をお使いの場合は、5.7.4以降にアップデートする前に、先に5.7.3にアップデートしてください。

過去バージョンページより過去のバージョンをダウンロードできます。

リモートアップデート:管理画面からのみの操作でアップデートする

[管理画面 > システムと設定 > concrete5をアップデート]ページにアクセスし、concrete5.org からアップデートをダウンロードすることができます。ダウンロードされた新バージョンは、updates/ ディレクトリに展開されます。ダウンロードが完了すると、アップデートの実行を選択することができます。

※ メジャーバージョンアップがリリースされた際等、安定版がリリースされるまで自動アップデートが開始されない場合があります。

手動で管理画面からアップデートする

上記の方法では管理画面から新バージョンのダウンロードと updates/ ディレクトリへの展開がconcrete5によって自動的に行なわれましたが、このステップを手動で行なうこともできます。その後、管理画面から更新を実行することでインストール完了となります。

  1. 最新バージョンをダウンロードページから入手します。
  2. zipファイルを解凍します。アップデートに必要なのは concrete フォルダのみですので、それ以外は削除します。
  3. この時点で、concrete5.7.x.x のような名前のフォルダの中に、concrete というフォルダが入っている状態になっているはずです。
  4. concrete5.7.x.x フォルダを、サーバーの updates/ ディレクトリにアップロードします。
  5. [管理画面 > システムと設定 > concrete5をアップデート]に、アップロードしたバージョンが表示されていますので、更新ボタンをクリックして実行しましょう。

どちらの方法を選択しても、application/config/ ディレクトリに update.php ファイルが作成されます。このファイルに、updates/ ディレクトリ内のどのバージョンが使われるようになったのかが記録されています。

オリジナルの concrete ディレクトリを上書きする(バージョン8以降)

ディスク容量を節約したい場合、そして concrete5 のアップデートをブラウザからの操作を行わずに完了したい場合、オリジナルの concrete ディレクトリを新しいバージョンと差し替えて、特定のルートからアップデートすることができます。

  1. 最新バージョンをダウンロードページから入手します。
  2. ファイルを解凍します。
  3. ウェブルートにあるこれらのアイテムを、ダウンロードしたもので置き換えます。
    1. concrete ディレクトリ(重要 既存のディレクトリを上書きしないでください。古いディレクトリ内を全て削除してから、新しいものに差し替えてください)
    2. updates ディレクトリ内を空にしてください。
    3. もし application/config/update.php ファイルが存在する場合、削除してください。
    4. composer.json ファイル(8.2.0以前からアップデートした場合)
    5. composer.lock ファイル(8.2.0以前からアップデートした場合)
  4. サイトにブラウザからアクセスしてください。

以上です!concrete5 バージョン8以降では、サイトを最新版にするためのデータベースマイグレーションは自動的に行われます。バージョン 8.4.0 以降、アップデート実行中はユーザーにメンテナンス画面が表示されます。

コマンドラインからアップデートする(バージョン8以降)

バージョン8へのアップデートは大きなものです。concrete5 のデータベース構造に多くの変更があり、時間がかかる場合があります。ブラウザからの concrete5 のアップデートがタイムアウトする場合や、エラーが起こる場合は、コマンドラインからのアップデートを試してみてください:

  1. 最新バージョンをダウンロードページから入手します。
  2. ファイルを解凍します。
  3. サーバーにSSHでアクセスし、Webルートディレクトリに移動します。
  4. メンテナンスモードを有効にします: ./concrete/bin/concrete5 c5:config -g set concrete.maintenance_mode true
  5. ウェブルートにある concrete ディレクトリを、ダウンロードした concrete ディレクトリで上書きします。
  6. 次のコマンドを実行します: ./concrete/bin/concrete5 c5:update 適用されるマイグレーションやアップデート時の通知はコンソールに出力されます。
  7. メンテナンスモードを解除してください: ./concrete/bin/concrete5 c5:config -g set concrete.maintenance_mode false

この方法でアップデートする場合は、アップグレード処理が自動的に開始されないよう、サイトをメンテナンスモードにすることを忘れないでください。

オリジナルの concrete ディレクトリを上書きする(5.7.5.x以前)

方法1、2は、アップデートのたびに updates/ ディレクトリに新しいバージョンが保存されますが、ディスクスペースを節約したい場合や、ウェブインターフェースからアップデートを行ないたくない場合は、元の concrete ディレクトリを新しいバージョンで上書きし、特定のURLからアップデートを実行することもできます。

  1. 特権管理者か、管理者グループでログインしてください。これは、concrete5サイトのアップデートには、「concrete5をアップグレード」権限が必要だからです。
  2. 最新バージョンをダウンロードしてください。
  3. zipファイルを解凍してください。
  4. ルートの concrete ディレクトリを、ダウンロードした zip ファイル内の concrete ディレクトリで上書きしてください。
  5. http://www.example.com/ccm/system/upgrade にアクセスしてください(example.comはサイトによって異なります)。アップデートが可能になっているメッセージが表示されますので、アップデートボタンをクリックして、最新バージョンへのアップデートを完了させてください。

アップデート権限のチェックを無効にする (5.7.x まで)

concrete ディレクトリを上書きするまえに管理者でログインしておくのを忘れてしまった(そして、上書きしたことでログインできなくなってしまった)場合には、設定ファイルを変更することで、一時的に権限チェックを無効化することができます。concrete.php ファイルを application/config/ ディレクトリに作成してください。または、すでにある場合は開いてください。もしファイルの中身が空であれば、下記のコードをコピー&ペーストしてください。

  
return array(
    'updates' => array(
        'enable_permissions_protection' => false
    )
);

ファイルが空でなければ、updates をキーとした配列を、既存の配列の中身に追加してください。アップデートが完了したら、追記した設定を削除し、アップデート権限のチェックが再び行なわれるようにするのを忘れないようにしてください。

以上

原文:Upgrading Concrete5