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ファイルを展開し、元の場所に戻します。
復旧後、以下のフォルダのパーミッションが書き込み可能状態か必ず確認してください。
書き込み不可の状態になっていたら、書き込み可の状態に変更します。
復旧後はキャッシュクリアを実施します。
Concrete CMS のルートフォルダで下記のコマンドを実行します。
concrete/bin/concrete5 c5:clear-cache
application/files/cache の中にあるファイルをすべて削除してください。
すべて完了したら、サイトにアクセスしてみてください。
問題がなければサイトが表示されます。
Concrete CMS のルートフォルダで下記コマンドを入力し、実行可能かどうか確認します。
問題なく実行できれば、環境情報が表示されます。
concrete/bin/concrete5 c5:info