concrete5のアップグレード

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

原文:Upgrading Concrete5

アップグレードの前に

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

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

お使いの concrete5.7.x によってまず、特定のバージョンに先にアップデートすることが必要になります。

  • 5.7.4~ =>5.7.5.5に直接アップデート可
  • 5.7.3.x =>5.7.4にアップデートが必要
  • 5.7.2.x =>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. ウェブルートにある concrete ディレクトリを、ダウンロードした concrete ディレクトリで上書きします。
  4. サイトにブラウザからアクセスしてください。

以上です!concrete5 バージョン8以降では、サイトを最新版にするためのデータベースマイグレーションは自動的に行われます。

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

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

  1. 最新バージョンをダウンロードページから入手します。
  2. ファイルを解凍します。
  3. ウェブルートにある concrete ディレクトリを、ダウンロードした concrete ディレクトリで上書きします。
  4. ウェブサーバーに ssh でアクセスします。
  5. ウェブディレクトリで、次のコマンドを実行します:

    concrete/bin/concrete5 c5:update

アップデートを実行するか確認されます。適用されたマイグレーションは、特定のアップグレードについての通知とともに、コンソールに出力されます。

オリジナルの 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 をキーとした配列を、既存の配列の中身に追加してください。アップグレードが完了したら、追記した設定を削除し、アップグレード権限のチェックが再び行なわれるようにするのを忘れないようにしてください。

言語ファイルをアップデートする

concrete5.7 より concrete5 をアップデートしても言語ファイルはアップデートされなくなっています。そのため、一部の画面に英語が表示されてしまう場合があります。

方法は2つあります

方法1:Core Translation Updater アドオンを使用する

サーバーが /application/language ディレクトリへ書き込みできるよう設定されていることが必要です。エラーが発生する場合は方法2を参照ください。

  1. Core Translation Updater をマーケットプレイスからインストールします。
  2. [管理画面] - [システムと設定] - [多言語] - [Core Translation Updater] に訪問
  3. Select Reource から「core-dev-57」を選択
  4. 右下の緑ボタン「選択」をクリック
  5. Select Language から日本語を選択
  6. 右下の「更新」緑ボタンをクリック
  7. 完了です

※ 日本語以外の言語も管理画面で使用している場合、同じ作業を違う言語でも繰り返してください。 

方法2: 最新版の言語ファイルを /application/language/ フォルダに上書きする

サーバーのファイル権限などの問題で、アドオンを使用できなかった際に、手動で行う方法です。

  1. concrete5 翻訳レポジトリのGitHub ページから最新の concrete5 翻訳ファイルをダウンロード (左のリンクをクリックするとZIP形式でファイルがダウンロードされます)。
  2. ZIP ファイルを解凍
  3. 「core-dev-57」フォルダの中にある「ja_JP.mo」をファイルを「messages.mo」にリネーム
  4. ご自分のサーバー上にある「/application/languages/jaJP/LCMESSAGES/」ディレクトリ中の「message.mo」をさきほどの「message.mo」ファイルで上書き保存
  5. 完了

※ 日本語以外の言語も管理画面で使用している場合、同じ作業を違う言語でも繰り返してください。 

以上