2014年4月13日日曜日

Netcommons2のサーバー移転

自鯖(old_server)で運用していたNetCommonsをさくらインターネットVPS(new_server)に引っ越しさせる際の覚書。本投稿は、Debian Squeez@自鯖 -> Debian wheezy@さくらVPS の事例です。

1.new_serverにDebian7 amd64 をインストール。

  •  Web経由で VNCでコンソール画面を表示させてインストール作業を進めることになるが、手元OSのJAVAがJAVA7にアップデートされている場合、セキュリティ機能でVNCコンソールが表示されない。JAVA7のセキュリティレベルを下げると表示されるようになります。参照:http://blog.makotokw.com/2014/04/08ta/java7-vs-vnc/
  • new_serverのロケールがja_JP.UTF-8になっているか確認。
    •  ja_JP.UTF-8 # dpkg-reconfigure locales で設定。
    • テキストエディタやシェルの言語設定にも注意
       

2.new_serverにold_serverの環境をつくる

  • apache2-mpm-prefork,php5,mysql,などなど、 apache-mod-php5も忘れずに。
  • a2enmodコマンドでapache2のphp5, ssl, rewrightの各モジュールを有効にする
  • インストール直後は、ユーザーディレクトリでのPHPの実行ができないので解除
  • /etc/php5/apache2/php.ini を編集し default_charset = UTF-8 をコメントアウト
  • 2021年4月追記
    Netcommons2のDocument rootは、htdocs/ であるので、Apache2の当該ドメインのVirtual Domain のDocument root の設定もhtdocs/ までのPathを指定すること。また、SSL、非SSL双方とも同様に設定すること。

3.Mysqlデータの移行

  • old_server
    • mysqldump -u root -p  database_name --default-character-set=binary > backup.sql
  •  文字化け予防のためエクスポート、インポート時に --default-character-set=binary オプションを指定。
  •  転送 old_server %scp backup.sql new_serve:/home/user_name/
  • new_server
    • mysql -u root -p database_name --default-character-set=binary < backup.sql


4.Netcommonsインストールディレクトリの転送

Debian ではapache2 をwww-data というオーナーで管理する特徴があります。そのため、ユーザーディレクトリで運営しているWebサイトでも、所有者情報がwww-dataのファイルやディレクトリが生成されることがあります。
NetCommonsの場合、htdocs下"images","js","themes" の3つのディレクトリとその中に生成されたファイルおよび、webapp下のuploadsディレクトリ下の各モジュール用のアップロードファイル格納ディレクトリのオーナー情報がwww-data扱いになっています。
移転元サーバーからSCPで転送する際、移転先サーバでは上記のディレクトリとその下にあるファイルの所有者情報が、そのユーザーになってしまいます。SCPでファイルを移転した後に、#chown -R www-data.ww-data  にて、オーナー情報を書き換える必要があります。

 5.DNSの設定を新しいサーバーに向ける。

たぶん、これでつつがなく移転できるはず...
移転元でNetCommonsをSSLしていて、移転先でSSL環境が用意できていないと、移転先のNetCommonsでログインできなくなって往生した。とりあえずオレオレSSL証明書で対応。最近のブラウザはオレオレSSLサイトを容易に表示しなくなっているので、やりにくい...

SSL証明書発行元のサーバーが途中で変わると面倒そうなので、SSL証明書の期限のタイミングでnew_serverで発行して認証してもらうことにする。

しかし、このタイミングでopenssl 1.0.1に重大なセキュリティーホールが発見され、様子見
Debianの対応状況はこちら、https://security-tracker.debian.org/tracker/CVE-2014-0160

手元のopensslのバージョンは"1.0.1e-2+deb7u6" だから、対応版にアップデートされたようだ。

でも、重大な欠陥だったから、SSL証明書のリセーラーがパンク状態に。
証明書発行に時間がかかりそうorz...