Concrete CMSをバージョンアップするや、サーバー移転するときは、事前にバックアップをしておきます。
そのバックアップ方法と、万が一サイトが壊れた場合のバックアップからの復旧方法をご案内します。

バックアップ

データベースのバックアップ

データベースのバックアップを取得する方法にはいくつかありますが、SSHを使ってサーバーにターミナルでアクセスできる場合は、下記のコマンドでバックアップファイルを作成します。

mysqldump -u [MySQL ユーザー名] -p --default-character-set=utf8mb4 [MySQLデータベース名] > [出力ファイル名].sql

このコマンドでは、SQLフォーマットのバックアップファイルが作成されます。

もしくは、データベースのスナップショットを作成するのも良いでしょう。利用されているサーバーで対応していればデータベースのバックアップをスナップショットで対応することもできます。

一般的なデータベース管理ツールである phpMyAdmin を使えば、エクスポート機能によってバックアップを作成することができます。
しかし、データベースのサイズが大きいとエクスポート中にタイムアウトが発生する可能性が高いため、基本的には上記のSSHコマンドラインか、スナップショットでの対応をお勧めしています。

 

ファイルのバックアップ

ファイルはすべてダウンロードします。コマンドラインが使える場合は、次のアーカイブコマンドを使用してアーカイブを作成後、ダウンロードしてください。その方が転送時間が短く済むことがあります。

tar czfv site_copy.tgz [Concrete CMSのフォルダ]/

もしくは、ファイルのスナップショットを作成するのも良いでしょう。利用されているサーバーで対応していればファイルのバックアップをスナップショットで対応することもできます。

 

バックアップからの復旧方法

スナップショットを使ってファイルやデータベースをバックアップした場合は、各サーバーごとのスナップショットからの復旧方法をご確認ください。

 

データベースの復旧

ここではSQLフォーマットでバックアップをとったケースをご案内します。

復旧用のデータベースを用意してください。
用意したデータベースにインポートする方法は、SSHでは以下のコマンドで実行可能です。

mysql -u [MySQL ユーザー名] -p --default-character-set=utf8mb4 [MySQLデータベース名] < [出力ファイル名].sql

phpMyAdmin の管理ツールにあるインポート機能からでもインポートすることは可能ですが、データ量が多いとタイムアウトが発生することがあります。
そのため、基本的にはSSHコマンドラインによる復旧、もしくはスナップショットでの復旧をお勧めしています。

 

ファイルの復旧

旧ファイルはすべて削除します。
その後、zipファイルを展開し、元の場所に戻します。

復旧後、以下のフォルダのパーミッションが書き込み可能状態か必ず確認してください。

  • application/files/
  • packages/
  • updates/
  • application/config/
  • sitemap.xml

書き込み不可の状態になっていたら、書き込み可の状態に変更します。

 

キャッシュクリア

復旧後はキャッシュクリアを実施します。

コマンドラインインターフェース(CLI)を使用している場合

Concrete CMS のルートフォルダで下記のコマンドを実行します。

concrete/bin/concrete5 c5:clear-cache

 

CLIを使用していない場合

application/files/cache の中にあるファイルをすべて削除してください。

 

復旧の確認

すべて完了したら、サイトにアクセスしてみてください。
問題がなければサイトが表示されます。

CLIを使用している場合

Concrete CMS のルートフォルダで下記コマンドを入力し、実行可能かどうか確認します。
問題なく実行できれば、環境情報が表示されます。

concrete/bin/concrete5 c5:info