サイトの移転

concrete5サイトを引っ越しするには、大きく次の5つのステップが必要です。

  1. データベースのバックアップを取得します。
  2. concrete5ルートディレクトリ内のファイルのバックアップを取得します(application/, concrete/, packages/, updates/ の各フォルダとindex.phpなど)。
  3. ファイルを新しいサーバーにアップロードします。
  4. 新しい、空のデータベースを新しいサーバーに作成し、ステップ1で取得したバックアップを新しいデータベースにインポートします。
  5. 新しいサイトの設定ファイルを変更します。

(注:このガイドは、/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)の内容を、新しいサーバーの情報に変更しましょう。

テスト

これらの操作を行なってみて、移転がうまくいったかどうかを確認してください。

  1. 管理画面からキャッシュをクリアする。
  2. ファイルマネージャーにファイルをアップロードする。
  3. 「自動実行ジョブ」を実行する
  4. ページの編集をしてみる(ページの変更をして、保存ができるかどうか)

トラブルシューティング

  1. ファイルがアップロードできません/自動実行ジョブが実行できません: パーミッションの設定を確認してください。
  2. データベースに接続できません: database.php の設定が間違っているか、データベースが存在していません。
  3. リンク切れしています: 移転前のサイトでプリティーURLを指定していましたか?.htaccessファイルを新しいサーバーに移せていない可能性があります。

原文:Moving a Site