サイトの移転
concrete5サイトを引っ越しするには、大きく次の5つのステップが必要です。
- データベースのバックアップを取得します。
- concrete5ルートディレクトリ内のファイルのバックアップを取得します(application/, concrete/, packages/, updates/ の各フォルダとindex.phpなど)。
- ファイルを新しいサーバーにアップロードします。
- 新しい、空のデータベースを新しいサーバーに作成し、ステップ1で取得したバックアップを新しいデータベースにインポートします。
- 新しいサイトの設定ファイルを変更します。
(注:このガイドは、/home/your_account/public_html/ にconcrete5がインストールされている場合を仮定して記述していますが、このテクニックはどこにconcrete5がインストールされていても有効です。)
データベースのバックアップ
データベースのバックアップを取得する方法にはいくつかありますが、一般的なデータベース管理ツールである「phpMyAdmin」を使えば、「エクスポート」機能によってバックアップを作成することができます。
SSHを使ってサーバーにターミナルでアクセスできる場合は、下記のコマンドでもバックアップファイルを作成できます。
mysqldump -u [MySQL ユーザー名] -p --default-character-set=utf8 [MySQLデータベース名] > [出力ファイル名].sql
このコマンドでは、SQLフォーマットのバックアップファイルが作成されます。このファイルは、新しいサーバーに移転してから使用します。
ファイルのバックアップ
concrete5は、たくさんのファイルを使用しています。それらのほとんどが新しいサイトでも必要になるわけですが、一部、新しいサイトで不要なファイルもあります。
管理画面からキャッシュのクリアを行なうと、application/files/cache/ フォルダの中身は削除されます。つまり、このフォルダの内容は、無くなってもまた生成されると言うことですので、古いキャッシュはダウンロードする必要はありません。バックアップを取る前にキャッシュをクリアしておきましょう。
それ以外のファイルはすべてダウンロードします。コマンドラインが使える場合は、
tar czfv site_copy.tgz public_html/
のようにアーカイブを作成してダウンロードするほうが、転送時間が短く済みます。
ファイルを新しいサーバーにアップロード
次に、ダウンロードしたバックアップファイルを新しいサーバーにアップロードします。アップロードが完了したら、次のフォルダのパーミッションを変更する必要があります。
- application/files/
- packages/
- updates/
- application/config/
- sitemap.xml
これらのファイルは、インストール時と同様に、すべてウェブサーバーから書き込み可能である必要があります。
コマンドラインインターフェース(CLI)を使用している場合
下記のファイルは、ウェブサーバーから実行可能である必要があります。
- concrete/bin/concrete5
新しいデータベースを作成する
新しいサーバーで、空のデータベースを用意する必要があります。もしデータベースが作成されていなければ、phpMyAdmin を使って作成することもできます。新しいデータベースを作成できたら、phpMyAdmin の画面から「インポート」機能を使ってバックアップからデータベースのデータを復元します。コマンドラインでアクセス可能な場合は、次のコマンドでも可能です。
mysql -u [MySQL ユーザー名] -p --default-character-set=utf8 [MySQLデータベース名] < [出力ファイル名].sql
以上で、ファイルとデータベースの移動が完了しました。
設定ファイルを変更
最後に、application/config/database.php の内容を新しいデータベース接続情報に変更します。このファイルは、下記のようなPHPの連想配列になっています。
<?php return array( 'default-connection' => 'concrete', 'connections' => array( 'concrete' => array( 'driver' => 'c5_pdo_mysql', 'server' => 'localhost', 'database' => 'mydatabase', 'username' => 'myusername', 'password' => 'mypassword', 'charset' => 'utf8' ) ) );
サーバーのホスト(server)、データベース名(database)、ユーザー名(username)、アパスワード(password)の内容を、新しいサーバーの情報に変更しましょう。
テスト
これらの操作を行なってみて、移転がうまくいったかどうかを確認してください。
- 管理画面からキャッシュをクリアする。
- ファイルマネージャーにファイルをアップロードする。
- 「自動実行ジョブ」を実行する
- ページの編集をしてみる(ページの変更をして、保存ができるかどうか)
トラブルシューティング
- ファイルがアップロードできません/自動実行ジョブが実行できません: パーミッションの設定を確認してください。
- データベースに接続できません: database.php の設定が間違っているか、データベースが存在していません。
- リンク切れしています: 移転前のサイトでプリティーURLを指定していましたか?.htaccessファイルを新しいサーバーに移せていない可能性があります。