concrete5 サイトを復旧(リストア)する方法
インストールやアップグレード、もしくはサーバー等の障害で、やむなく concrete5 サイトをバックアップから復旧せざるを得なくなった場合、その復旧(リストア)方法をここで紹介します。
またサイトを別のサーバーやアドレスに移動させたい場合も、このページを参考にして下さい。
まずは、「サイトバックアップの仕方」の方法を使って、以下のファイルが必要になります
- サーバー上のファイル
- MySQL データベースから取得した、SQL バックアップファイル
*このページのやり方は、サーバーによって仕様が違ってくるため、完全無保証です。
目次
2. ファイルを復旧
1. /config/site.phpを確認 (引越される方)
2a. FTPを使いサーバーにアップ
3. 「メンテナンスモード」「キャッシュを有効」にしてサイトを公開
1. MySQLデータベースを復旧
a. phpMyAdminを使用
SQLファイルが小さい場合(目安として非圧縮の状態で10MB以下)、レンタルサーバー等で提供されている phpMyAdminを使用して復旧作業を行う事が出来ます。
1. phpMyAdmin にログイン
2. concrete5 のデータベースを新規作成、もしくは、データベースを選択し、データベース内のテーブルを全て選択し「削除 (Drop)」
3. インポート (Import) タブをクリック
4. SQL ファイルを選択し、「実行 (Go) 」をクリック
b. SSH等でコマンドを使う方法
SQLファイルが大きい場合で、サーバーにSSHアクセスやコマンドアクセスが出来、なおかつMySQLサーバーに接続出来る場合のみ有効です。
1. concrete5 復旧先のデータベースを新規作成、もしくは、データベースを選択し、データベース内のテーブルを全て選択し「削除 (Drop)」
2. FTP等を使い、SQLファイルをサーバー上にアップロード
3. SSH にログイン
4. 「cd」コマンドを使い、SQLファイルが保存された場所に移動
5. 以下のMySQLコマンドを使いSQLファイルを取り込む
mysql -u [MySQLユーザー名] -p --default-character-set=utf8 [MySQLデータベース名] < [SQLファイル名]
2. ファイルを復旧
それでは、サーバー上に保存されるファイルをアップロードします。
1. /config/site.phpを確認 (引越される方)
*サーバーを別の環境にインストールされる方
サイトを別のサーバーやディレクトリーにリストアされる方は、「/config/site.php」というMySQLのデータベース情報や、ドメイン等やパス等の情報が格納されたテキストファイルを編集する必要があります。
<?php
define('DB_SERVER', '[MySQLサーバーアドレス]');
define('DB_USERNAME', '[MySQLユーザー名]');
define('DB_PASSWORD', '[MySQL接続パスワード]');
define('DB_DATABASE', '[MySQLデータベース名]');
define('BASE_URL', 'http://[ドメイン名]'); // * 5.5.0 以降に新インストールしたサイトでは、この行はありません
define('DIR_REL', '[ディレクトリ(トップの場合は空白)]'); // * 5.5.0 以降に新インストールしたサイトでは、この行はありません
define('PASSWORD_SALT', '[concrete5自動生成暗号化パスワード]');
?>
サーバーを移動し、MySQLのサーバーが変わった場合、上部4行の「DB_SERVER」「DB_USERNAME」「DB_PASSWORD」「DB_DATABASE」を移動先の情報に更新して下さい
5.5.x 以降のバージョン
<?php
define('DB_SERVER', '[MySQLサーバーアドレス]');
define('DB_USERNAME', '[MySQLユーザー名]');
define('DB_PASSWORD', '[MySQL接続パスワード]');
define('DB_DATABASE', '[MySQLデータベース名]');
define('PASSWORD_SALT', '[concrete5自動生成暗号化パスワード]');
?>
※プリティーURLを有効にしている方で、配置ディレクトリーを変更された方は、「.htaccess」中の「RewriteBase」の行を変更する必要があります。
例:)DIR_RELが、「(何も無し)」から「/aaa」ディレクトリーに移動した場合は、「RewriteBase /」から「RewriteBase /aaa/」に変更して下さい。
5.4.x 以前をお使いの方へ
* 古いバージョン 5.4.x 以前の古いバージョンを使用されている方
アドレスやディレクトリーを移動した場合、「BASE_URL」「DIR_REL」の該当箇所を変更して下さい。
例: 「http://example.com/」 から 「http://example.net/aaa/」に移動の場合
define('BASE_URL', 'http://example.com');
define('DIR_REL', '');
から
define('BASE_URL', 'http://example.net');
define('DIR_REL', '/aaa');
以上の様に、/config/site.php の内容を変更してから、ファイルをサーバー上にアップして下さい。
※プリティーURLを有効にしている方で、上記のように、配置ディレクトリーを変更された方は、「.htaccess」中の「RewriteBase」の行を変更する必要があります。上記のようにDIR_RELが、「(何も無し)」から「/aaa」ディレクトリーに移動した場合は、「RewriteBase /」から「RewriteBase /aaa/」に変更して下さい。
2a. FTPを使いサーバーにアップ
バックアップしたファイルをサーバー上に戻す作業を行います。
ファイルの数が膨大になるため、アップロードの取りこぼし等に注意して下さい。
2b. FTP + SSH + UNZIP を使いサーバーにアップ
この方法は、コマンドの知識を有し、なおかつサーバーが対応している必要がありますが、時間を大幅に短縮する事が出来ます。
また、レンタルサーバーによっては、WEB上のコントロールパネルのファイルマネージャーにZIP解凍の機能がついている場合もありますので、確認されてもよいでしょう。
1. ファイルをZIPファイルにまとめて圧縮
ディレクトリーを間違ってZIPファイルに含まない様に気を付けて下さい
2. FTPを使いサーバーの移動先フォルダーにアップ
3. SSH にログイン
4. 「cd」コマンドを使い、ZIPファイルが保存された場所に移動
5. 「unzip」コマンドを使いサーバー上でファイルを解凍
unzip [ファイル名].zip
これでファイルが無事解凍されるはずです。
サイトにアクセスし、サイトが表示されているかの確認をして下さい。
3. 「メンテナンスモード」「キャッシュを有効」にしてサイトを公開
「サイトバックアップの仕方」でメンテナンスモード、キャッシュを無効の状態にしてからバックアップをされた場合、復旧された後ではメンテナンスモードのままになっています。
またトップページはメンテナンスモードである旨のメッセージが表示されるだけですので、
http://【concrete5サイトアドレス】/index.php/dashboard/
を、直接ブラウザに入力して、管理画面に行く必要があります。
「管理画面」-「サイト全体の設定」-「アクセス権限」よりメンテナンスモードを解除
サイトを巡回して問題が無いかを確認して下さい。
「管理画面」-「サイト全体の設定」-「デバッグ」より、開発モードを公開モードに、そしてキャッシュを有効にしてください。
おつかれさまでした。