年末年始はサーバーメンテナンスにもってこいの時期ですね。
このサイトに続き、CMSスキルストアもCPIへ移転しました。

a-blog cmsは、初期インストールの難易度が高いCMSです。サーバー移転も例外ではありませんが、CPIの「シェアードプランACE01」については専用パッケージがあり、比較的トラブルなくインストールできます。

CPIへの移転の手順を、ドメイン申請から解説していきます。

移転前に検討しておくこと

CPIにはいくつかハマりやすい仕様があります。移転前に、以下のことは必ず検討しておいてください。

共用SSL(共有SSL)

ACE01には共用SSLがありません。現行サーバーでメールフォームなどにSSLを利用している場合は注意してください。その代わり…なのか不明ですが、CPI依存のSSL証明書は比較的お得になっています。
なお、ACE01以外の専用サーバーであれば対応しているようです。

ドメイン追加

「ロリポップ!」や「さくらのレンタルサーバー」などの場合、ドメインは管理画面の操作のみで追加できますが、CPIでは都度申請が必要となります。マルチドメインだけではなく、www以外のサブドメインもすべて別契約扱いとなります。
管理画面やFTP情報も別途発行されるので安全性は高いですが、テストサーバーとしての利用には向かないので注意してください。また、各ドメインが独立しているため、ひとつのCMSで複数ドメインを一括管理するような運用がひじょうに困難です(不可能ではないようですが、できないと言っていいレベルで難しいです)。

SmartReleaseの利用

CPIには「SmartRelease」という機能があり、常にテストサーバーと公開サーバーのふたつが提供され、簡単に同期を取ることができます。社内で検討や改修が多い場合は便利な機能です。
個人で運用する場合はかえって煩わしいので、利用せずにいきなり公開サーバーに設置してもよいでしょう(CM3Sは実際そうしています)。ただしその場合は、ドメインを切り替えるまで「ライセンス切れ」となり、投稿が一切できません。

ネームサーバーとDNS

DNS管理をCPIに任せるか、外部ネームサーバーから操作するか選択できます。
CPIに任せると楽ですが、Web制作の仕事をしていると多数のドメインとサーバーを持っているため、お名前.comやバリュードメインから一括管理した方が、後々混乱を防げたりします。
一部のサブドメインのみECなどの外部サービスに仕向けたいという場合は、必ず外部ネームサーバーから操作してください。

a-blog cmsを最新版にバージョンアップするか

a-blog cmsをCPIへ移転する場合、必ず本体を専用パッケージに入れ替えることになります。移転してからバージョンアップすると二度手間になってしまいますから、バージョンアップも同時に行うことをお勧めします。
CPI専用パッケージの最古バージョンは2.0です。バージョンが古すぎるなどの理由でバージョンアップが難しく、かつ、php.iniなどのサーバー操作に自信がない場合は、他のサーバーを検討した方が良いと思います。

マルチドメインの申請をする

すでにCPIのアカウントがある場合は、現行サイトのドメインをCPIで利用するため、マルチドメインの申請をすることになります。

マイページの「ご契約一覧 > ご契約情報」から最初に契約したドメインの詳細ページへ進み、ページ下部の「マルチドメイン追加」をクリックします。

マルチドメインの申請を行います。ドメイン名を間違えないように注意してください。また、DNSサーバーを外部にするか、メールサーバーを利用するかもここで指定する必要があります。

24時間くらい待つと、サーバー情報が書かれたメールが送られてきます。

現行のa-blog cmsをバージョンアップする

メールを待っている間、現行サーバーのa-blog cmsを最新にバージョンアップします。
最新バージョンは最低動作環境がPHP5.3となっているので注意してください。また、万一のため、必ずバックアップを取ってください。

a-blog cmsのCPI専用パッケージ・無償ライセンスを入手する

a-blog cmsの公式サイトから「CPI専用パッケージ」の最新バージョンをダウンロードしてください。下記のダウンロードページの右メニューから「CPI専用版」のページへ移動します。

http://developer.a-blogcms.jp/download/

SmartReleaseを利用する場合は、テストサーバー側で「特定サーバー無償ライセンス」を利用できます。こちらもダウンロードしておきましょう。

http://developer.a-blogcms.jp/download/specific/license.html

SFTP、データベース、メールアカウントの設定を行う

サーバー情報のメールが届いたら、ユーザーポータルへログインし、新サーバーの設定をしていきます。
SFTP(FTPは、この際やめましょう)・a-blog cmsのデータベース・メールアカウントの作成をしましょう。

SmartReleaseを利用する場合は、データベースはテスト用と公開用のふたつが必要になります。

現行のa-blog cmsをバックアップ

現行サーバーのa-blog cmsにログインし、管理画面の「バックアップ」から、データベースをエクスポートします。
コマンドやPHPMyAdminで直に落としても良いのですが、a-blog cmsのエクスポート・インポート機能は優秀です。「エントリーが数万件あってエクスポートすると落ちる」とか、よっぽどな状況でない限り、正規の手順をお勧めします。

archive・archive_rev・mediaのエクスポートは任意で構いません。Transmitを使っているなら、現行サーバーと新サーバーを左右ペインに表示して、フォルダごとドラッグ・ドロップでコピーした方が楽でしょう。

新サーバーにa-blog cmsをインストールする

新サーバー(つまりCPI)に、a-blog cmsを設置します。SmartReleaseを利用する場合はテストサーバー、利用しない場合は公開サーバーに設置します。テストサーバーの場合は特定サーバー無償ライセンスも入れておきます。

.htaccessの編集やパーミッションの設定は不要です。専用パッケージをアップロードして、仮URLにアクセスするだけでインストールがはじまります。

無事にインストールできたら、自作したテーマ・archive・archive_rev・mediaディレクトリを新サーバーへ複製してください。フックを自作したり、systemテーマをいじっている人は、そちらも忘れずに!

a-blog cmsに現行サーバーのデータをインポートする

新サーバーのa-blog cmsの /private/backup/ にエクスポートしたzipファイルをアップロードします。「backup」ディレクトリはないので作成してください。

新サーバーのa-blog cmsにログインし、先ほどのエクスポート画面からインポートを行います。無事完了すれば、すぐに現行サーバーのサイトが復元されるはずです。

SmartReleaseの設定をする

SmartReleaseを利用する場合は、こちらの設定も必要となります。

ユーザーポータルのページから「SmartRelease」の管理画面へ移動し、左メニューから「リリース」「ファイル転送」の両方に対し「除外リスト」の設定を行ってください。

「除外リスト」とは、同期をするときに移動させないファイルのリストです。CMSの場合、テストサーバーと本番サーバーでデータベースやアップロード画像が異なっている状態になりますから、関連するファイルを間違って同期しないようにしておかなければならないのです。

a-blog cmsで、除外リストに加えるファイルは以下の通りです。.htaccessについては、ドメインのwwwあり・なし統一をしない場合は同期しても構いません。

  • /html/.htaccess
  • /html/config_server.php
  • /html/lisence.php
  • /html/archives/
  • /html/archives_rev/
  • /html/media/

公開サーバーにa-blog cmsをインストール・インポートする

SmartReleaseを利用する場合は、ユーザーポータルのページから「SmartRelease」の管理画面へ移動し、公開サーバーへファイル一式を転送してください。

ドメインを切り替えたときに、新サーバーにアクセスしていることがわかるよう、新サーバーのテーマ内にコメントなどで「目印」をつけておくとわかりやすいです。

このあと、先ほどと同様に初期インストールと現行サーバーのデータの復元を行いますが、除外リストのファイルは転送されていませんから、インストール前に以下の通り差し替えてください。

  • /html/.htaccess・・・公開サーバーのファイルを複製し、wwwあり・なし統一のドメインのみ書き換える
  • /html/config_server.php・・・CPI専用パッケージの初期データをアップロードする
  • /html/lisence.php・・・現行サーバーのライセンスをアップロードする
  • /html/archives/・・・テストサーバーのファイルを複製する
  • /html/archives_rev/・・・テストサーバーのファイルを複製する
  • /html/media/・・・テストサーバーのファイルを複製する

先述した通り、データをインポートすると、ネームサーバーの設定が浸透するまで公開サーバー側はライセンス切れ状態となります。

公開サーバーのa-blog cmsのドメイン設定を変更する

ドメインを切り替える直前に、仮ドメインで設置されている、公開サーバーのa-blog cmsのドメイン設定を変更します。

インストール時にリネームした「setup_(英数字)」ディレクトリを「mente」に変更したうえで、メンテナンスメニューにログインし、データベースのドメインを正式なドメイン名に変更します。

この時点で、公開サーバーのa-blog cmsは404エラーとなります。

ネームサーバーの設定を行う

すべての準備が完了したら、ネームサーバーの設定を行い、ドメインの仕向けるサーバーをCPIに変更します。

外部ネームサーバーの場合は設定がサービスにより異なりますが、バリュードメインの設定例を挙げておきます。

CPIのメールサーバーを利用する場合

a @ 123.45.678.9
a www 123.45.678.9
a ftp 123.45.678.9
mx af000.secure.ne.jp. 10
a smtp 123.45.678.000
a pop 123.45.678.000
a mail 123.45.678.000
txt @ v=spf1 a:example.com ~all

Google Appsを利用する場合(有料でCPIに連携してもらうこともできます)

a * 123.45.678.9
mx aspmx.l.google.com. 1
mx alt1.aspmx.l.google.com. 5
mx alt2.aspmx.l.google.com. 5
mx aspmx2.googlemail.com. 10
mx aspmx3.googlemail.com. 10
mx aspmx4.googlemail.com. 10
mx aspmx5.googlemail.com. 10
cname docs.example.com. ghs.google.com
cname calendar.example.com. ghs.google.com
cname mail.example.com. ghs.google.com
cname google0xx000xx00x00x00.example.com. google.com
txt @ v=spf1 include:aspmx.googlemail.com ~all

サブドメイン「store」をBASEに接続する場合

以下を追記

cname store cname.thebase.in.

公開後の動作確認

一時間後くらいから、ドメインが切り替わり、新サーバーが表示されるようになります。

a-blog cms、作成したメールアカウントの動作を確認してください。


以上です。

この記事はa-blog cmsの手順ですが、他のCMSでも考え方や注意すべきことは同じです。いちど移転ができれば、他のCMSでも応用がきくのではと思います。

この記事を書いた人

うぇびん

愛知県豊橋市に住んでいる、荒ぶるウェブおばさん。WordPressをはじめとした各種CMSを研究するのが好き。札幌のIT企業のビットスター株式会社に所属しています。