2014年8月4日月曜日

NET COMMONSの引っ越し

レンタルサーバーで使用していたMYSQLのファイルサイズが、一つのDBは100MB迄という上限を超えてしまったので、新規にレンタルサーバーを契約してnc(NET COMMONS)を引っ越すことにした。引っ越しついでに今まで使用していたドメイン名も変更する事にした。引っ越しが完了するまでは色々と悩んだが、終らせた今振り返ってみると、引っ越しは思ったよりは単純な作業だった。同じように引っ越しで悩んでいる人に手順をご紹介(※この手順は正しい手順ではない可能性があります。気付いたら指摘してください)。

・当社の環境
レンタルサーバーはNTT PC COMMUNICATIONSのWebARENA

・旧nc環境
サーバーは SuiteX V1
MYSQLは標準のもの(MAX 100MB)
ドメイン名は独自ドメインでhoge.com
IPアドレスは、hoge1
ncインストール先は、home/

・新nc環境
サーバーは SuiteX V2 スタンダード
MYSQLは高機能データベースMySQL5(MAX 10GB)
ドメイン名は独自ドメインでnc.hoge.com
IPアドレスは、hoge2
ncインストール先は、home/nc.hoge.com/ ※マルチドメイン設定

つまり、ドメイン名もIPアドレスも違うという環境でのお引っ越し。


・手順
前提条件として、レンタルサーバーの設定(例えば、子ドメインの追加、マルチドメインの設定など)は終わっているものとする。※独自ドメインの場合、レジストラへの登録等の作業が必要だけど、その手順は割愛。
  1. 新nc用レンタルサーバーでhtaccessが有効であることを確認。確認方法はこちら
  2. 新MYSQLに旧MYSQLと同じデータベース名でデータベースを作成する。
  3. 管理者権限で旧ncにログインし、旧ncのサイトを閉鎖する。
  4. 旧ncをフルバックアップする。
  5. フルバックアップした旧ncを解凍。私の場合は、Windows PC上で解凍。解凍に使わせてもらったソフトはALZip。+Lhacaで解凍したら理由は不明だが解凍が不十分だった。
  6. 解凍した旧nc内のhome/.htaccessを削除 ※引っ越し先は、home直下ではなくhome/nc.hoge.com/の中なので、元の.htaccessとは内容が異なるから。
  7. 解凍した旧nc内のhome/webapp/config/install.inc.php の値を新nc用に変更
    // ----------------------------
    // ベースのURL値
    // ----------------------------
    define('BASE_URL', 'http://新ncのFQDN');
    例えば、define('BASE_URL', 'http://nc.hoge.com');
    // ----------------------------
    // データベース用設定値
    // ----------------------------
    define('DATABASE_DSN', 'mysql://DBユーザー名:パスワード@DBサーバー名/DB名');
    例えば、define('DATABASE_DSN', 'mysql://hogedbid:hogepass@localhost/hogedb');
  8. FTPソフトを使用して解凍した旧ncをnc.hoge.com/home/nc.hoge.comにコピー(バイナリーモード)。使わせてもらったソフトはWinSCP。
  9. nc.hoge.com/home/nc.hoge.com/webapp/config/install.inc.phpのパーミッションを444に変更。※これをしないとインストーラーが起動してしまう。
  10. パーミッションを777にするディレクトリ一覧
    index.phpがあるドキュメントルートディレクトリ(一般的にsrc直下 or src/htdocs直下)
    webapp/uploads以下のすべてのディレクトリ(ファイル)(chmod -R 777 uploads/)
    webapp/templates_cディレクトリ
  11. 解凍した旧nc内のbackup_full.sqlをテキストエディタで開き、http://hoge.com(旧URL)をhttp://nc.hoge.com(新URL)に全部置換。※この作業は、nc内のリンクを全部新しいurlに変更するために必要な作業。使用したエディタはMicrosoft社製 Visual Studio 2008。
  12. 置換したbackup_full.sqlを新MYSQLにインポート。インポートに使わせてもらったソフトは、BigDump。普通ならばphpMyAdminを使用してインポートすれば良いのだが、そもそも今回引っ越しする羽目になったのは、DBの容量が100MBを超えてしまった為。高機能データベースのphpMyAdminでは、インポート可能なファイルサイズが100MiBまでなのでそのままではインポート不可能。そこで、自動的にファイルを分割してインポートしてくれるBigDumpが大活躍。とても助かりました。
  13. これで新ncが動作する環境は整ったので新ncのurl(http://nc.hoge.com)に管理者でログオンし、モジュール管理から一括アップデート。※固定リンクの設定だとログオンした際、ページが見つからないとなってしまうが、慌てずアドレスに新ncのurl(http://nc.hoge.com)と入力し直せば大丈夫。※一括アップデートが重要。
  14. 固定リンクの設定をONにしている場合は、一旦OFFに設定後、再度ONに設定しなおし、.htaccessを作成しなおす。※nc.hoge.com/home/nc.hoge.com/直下に作成される。
  15. nc.hoge.com/home/nc.hoge.com/.htaccessの最終行に、php_value memory_limit 50Mを追加する。
  16. 旧ncサーバーにURL REDIRECTの設定をする。hoge.comをnc.hoge.comへリダイレクト。
  17. 完成

参考にしたurl
WebARENA NetCommons2
nc 4-07 バックアップ
BigDumpの使い方