カテゴリー
Linux サイト構築

Amazon EC2からお名前.comへの移行したよ その2

Amazon EC2からお名前.comのVPSサービスに移行したよ、その二。
今回は、細かい手順を記録のために残しておく。
あくまでメモ程度。

まずは申し込み

ドメイン聞かれたので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も悪くはないかもしれない。

この記事を書いた人: A-tak

A-tak.com(えいたっく どっとこむ)の管理人。
Apple野郎なおっさんでしたが、ちょっと最近のAppleには飽き気味。
A-tak.comは2002年2月から運営(前身のサイトは1999年3月から)。今年で18年目!

Youtube / Twitter / Mastodon / Facebook