Amazon EC2からお名前.comのVPSサービスに移行したよ、その二。
今回は、細かい手順を記録のために残しておく。
あくまでメモ程度。
目次
- 1 まずは申し込み
- 2 基本設定
- 3 なぜかSSHに時間がかかる
- 4 MySQL起動
- 5 xoops環境構築
- 6 既存データのバックアップ
- 7 データを新しいサーバーへ
- 8 お名前.comのWebフォルダ構成
- 9 ホスト名なしでa-tak.comのコンテンツが出るようにする
- 10 バックアップしたデータの復元
- 11 データベース復元
- 12 DBユーザー作成
- 13 インストールパスの変更
- 14 php.iniの設定変更
- 15 文字化け対策
- 16 設定を本番用に合わせる
- 17 ファイルアップロードの設定変更[2009.10.12追記]
- 18 カスタムエラーページの指定もしておく
- 19 コントロールパネルでユーザー追加するどうなるか
- 20 PHP5.2にあげる
- 21 残った問題
- 22 まとめ
まずは申し込み
ドメイン聞かれたのでa-tak.comと入れた。
15分ぐらいすると、以下からコントロールパネルにログインできるようになる。
https://my.rentalserver.jp/srvlst.aspx
基本設定
rootのパスワード変更。出来合のユーザーが分かりづらいIDなので新規に追加してみた。
idやパスワードが必ず8文字以上なので注意 。
sshのポートを開放。セキュリティー – ファイアウォール – SSH 許可に変更すればよい。 逆に使わないポート閉じる。
yumがつかいたいので自動アップデート停止。セキュリティー – アップデートから指定。
なぜかSSHに時間がかかる
sshでログイン。なぜか、やけに時間がかかる。3分ぐらい?
でも、辛抱強く待つとログインできる。
[追記]
こちらの記事の以下の二つを設定したら見違えるように早くなった。サンクス!
/etc/ssh/ssh_configに AddressFamily inet 追加
/etc/ssh/sshd_configに UseDNS=no を追加
お名前.comのサポートQAにも関連事項あり。
MySQL起動
また、コントロールパネルに戻って、データベース – MySQL – 起動。
起動後、データベースのページに戻ってphpMyAdminへ。
最初からOSのrootのパスワードと同じ物が設定されているので、これでOK。らくちんだなぁ。
ちなみに、ドメイン追加は自由。課金されるとか出てくるけど、実際はVPSプランでは追加課金されない。
xoops環境構築
文字化け防止設定
元々EUCで運用していたので、/etc/my.cnfを開いて、以下を追加。
[mysqld]
default-character-set = ujis
character-set-server = ujis
init-connect = SET NAMES ujis
skip-character-set-client-handshake
[mysqldump]
default-character-set = ujis
[mysql]
default-character-set = ujis
サービスを再起動
service mysqld restart
既存データのバックアップ
Amazon EC2のデータはtarなどで固めてバックアップ。
当然dbもダンプする。
それにしてもバックアップ早いな。自宅サーバーでは結構時間かかってたのに。
どうやらディスクは相当早いものを使っているらしい。
データを新しいサーバーへ
たぶん、SSHが通っていればWinSCPでAmazon EC2からファイルダウンロードできる。
同様に、お名前.comにもWinSCPでファイルを渡す
お名前.comのWebフォルダ構成
ここで軽く注意点。
http://www.onamae-server.com/support/faq/vps/web/web_46.php
http://www.onamae-server.com/support/faq/vps/web/web_15.php
上記に書かれているように、バーチャルホスト毎にフォルダがあるのでそこにコピーしないとだめ。
ディレクトリをまず確認。設定ファイルは以下に自動で作成されている。
/etc/httpd/conf.d/zz_00_default_virtualhost.conf
ホスト名なしでa-tak.comのコンテンツが出るようにする
DNSの設定をAmazon EC2から変える前に動作確認のために、IPでアクセスしたときもa-tak.comのコンテンツが表示されるように設定変更。
vi /var/www/vhosts/00_default/conf/00_default_httpd_vh_base.conf
#DocumentRoot /var/www/vhosts/00_default/httpdocs
DocumentRoot /var/www/vhosts/a-tak.com/httpdocs
バックアップしたデータの復元
バックアップを以下のディレクトリにコピー
/var/www/vhosts/a-tak.com/httpdocs
コピーするときは上書き確認などがうざいので、「unalias cp」しておく方が楽。
データベース復元
まずはユーザー作成。
mysqladmin -p create xoops
ダンプををgnuzipとかで固めているなら
gunzip < ../xoops-backup-20091003.bak.gz | mysql -p xoops
こんな感じで復元かな。
DBユーザー作成
お名前.comではphpMyAdminが用意されているので、ログインして、特権>新しいユーザーを追加する
再度権限の画面でxoopsを開いて、データベース毎の特権のところでxoopsのdbを選択して、grant以外を付与(usage)。
参考:
https://a-tak.com/xoops/modules/wordpress/index.php?p=1449&more=1&c=1
これでトップページが出た
xoopsが動かない場合はエラーログ確認。これも普通と場所が違う。
view /var/www/vhosts/00_default/logs/error_log
ドメイン名でアクセスしている場合は
view /var/www/vhosts/a-tak.com/logs/error_log
に残ります。
インストールパスの変更
vi /var/www/vhosts/a-tak.com/httpdocs/xoops/mainfile.php
define(‘XOOPS_ROOT_PATH’, ‘/var/www/html/xoops’);
↓
define(‘XOOPS_ROOT_PATH’, ‘/var/www/html/xoops’);
さらにurlも一時的に変更
#define(‘XOOPS_URL’, ‘https://a-tak.com/xoops’);
define(‘XOOPS_URL’, ‘http://xxx.xxx.xxx.xxx/xoops’);
php.iniの設定変更
php.iniのメモリを増やす。amazon ec2の設定に合わせて32MBに。お名前.comデフォルトは16MBになっている。
vi /etc/php.ini
;memory_limit = 16M ; Maximum amount of memory a script may consume
memory_limit = 32M ; Maximum amount of memory a script may consume
文字化け対策
vi /etc/httpd/conf/httpd.conf
#AddDefaultCharset UTF-8
これやらないとログイン、ログオフのメッセージが化ける。
そして、サービス再起動。
これでページがみれるはず。
設定を本番用に合わせる
動作確認後、DNSをお名前.com側に向けたら、テスト用に設定していたのを元に戻す
vi /var/www/vhosts/a-tak.com/httpdocs/xoops/mainfile.php
define(‘XOOPS_URL’, ‘https://a-tak.com/xoops’);
#define(‘XOOPS_URL’, ‘http://xxx.xxx.xxx.xxx/xoops’);
ちなみにVPSサーバーのネームサーバーはVPSコントロールパネルのシステム設定 – 基本情報にある 。
ファイルアップロードの設定変更[2009.10.12追記]
xoopsの管理画面にログインして、File Uploadsのfileupload_realpathを設定しなおす。
/var/www/vhosts/xxxxx/httpdocs/xoops/modules/wordpress/attach
という感じで変更
カスタムエラーページの指定もしておく
vi /var/www/vhosts/a-tak.com/conf/httpd_vh_base.conf
<VirtualHost *:80>
~(snip)
ErrorDocument 404 /404.htm
~(snip)
</VirtualHost *:80>
コントロールパネルでユーザー追加するどうなるか
以下のようにバーチャルドメインごとのディレクトリに勝手に追加されていくみたい。
/var/www/vhosts/a-tak.com/zone_users
PHP5.2にあげる
CentOS5.2のPHPバージョンは5.1。
そのままでは投票のajaxが動かないのでPHP5.2にあげる。
yum使うとPHP5.3になって、今度はXOOPSが動かなくなるので、5.2に手動であげることにする(めんどくさい)
まずは今のPHPモジュールを消す
yum remove php
yum remove php-common
関連パッケージもまとめてremoveされちゃったので、5.2用のパッケージを関連するものは入れ直し。
パッケージは以下からがんばって落とした。
http://rpms.famillecollet.com/enterprise/5/remi/x86_64/repoview/letter_p.group.html
以下は、実際に落としたパッケージ群。
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-cli-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-common-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-dba-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-mcrypt-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-mysql-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-bcmath-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-xml-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-xmlrpc-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-gd-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-mbstring-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-soap-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-pdo-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-imap-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-devel-5.2.10-1.el5.remi.x86_64.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/phpMyAdmin-3.2.2-1.el5.remi.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-pear-Mail-Mime-1.5.2-5.el5.remi.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-pear-Mail-mimeDecode-1.5.0-4.el5.remi.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-pear-1.9.0-1.el5.remi.noarch.rpm
rpm -ivh php-common-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-cli-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-bcmath-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-dba-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-devel-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-gd-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-imap-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-mbstring-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-pear-1.9.0-1.el5.remi.noarch.rpm
rpm -ivh php-pear-Mail-mimeDecode-1.5.0-4.el5.remi.noarch.rpm php-pear-Mail-Mime-1.5.2-5.el5.remi.noarch.rpm
rpm -ivh php-pdo-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-mysql-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-soap-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-xml-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh php-xmlrpc-5.2.10-1.el5.remi.x86_64.rpm
rpm -ivh phpMyAdmin-3.2.2-1.el5.remi.noarch.rpm
サービス再起動。
service httpd stop
service httpd start
なぜか、お名前.comは、restartではうまくいかない場合があるので、面倒でもstop & startで。
これで、ちゃんと動くようになった。
が、少々問題が残った。
残った問題
一つはSSHにログインしたときにやたらと時間がかかること。サポートに問い合わせたが原因確認できずとのこと。うちから試すと、どのマシンでも同じ状況なので、うちのネットワークか、サーバー環境に問題があるのだろう。
↑これは解決。上の方に書いてあるから見てね。
二つ目はお名前.comのネームサーバーのmxレコードを編集できないこと。
Google Appsをメールサーバーに使ったりしている場合は、ドメインのネームサーバー情報には、お名前.comのネームサーバーではなくてmxレコードが編集できるネームサーバー、たとえばMyDNS.jpなどを用意しないといけない。
せっかく固定IPなのにダイナミックDNSかぁ。なんかいまいち。
お名前.comのサポートの返答では、要望は検討するとのことだったので、将来的には対応されるかもしれない。
まとめ
この値段でVPS使えるのはいいかも。スペック的にも個人でやる分には必要十分だと思う。
Amazon EC2と違い国内サーバーなのでターミナルでアクセスしたときのキー入力に対する追従が早いのもいい。
本当にテスト的にすぐにサーバーが必要で、すぐいらなくなる、という時には初期費が不要なAmazon EC2がいいけど、普通に個人でサーバー運用するならお名前.comも悪くはないかもしれない。