今日のエントリーは思いっきり技術ネタに振り切った内容。
過去にも「サーバーOSのバージョンアップ検証中」や「MySQL 5.0.45が入らないよ」でもやってたようにa-tak.comのソフトウェアのバージョンアップをやろうとしてます。
目次
VirtualPCいまいち
まずは、検証と言うことで環境を作るところからなんですが、これが大変。
VirtualPC 2007ですが、Linuxがさっぱり入らない。
起動時にaを押してカーネルの引数として
vga=791 i8042.noloop psmouse.proto=imps clock=pit noreplace-paravirt
これを追加したらうまくいくとか見つけたけど、Vista 64ビットのHome Editionだからか、うまくいったりいかなかったりでものすごく不安定(そもそもHomeはサポート対象外ですが)。スピードもやたらと遅いし。
VMWare Playerのイメージは英語版Fedoraで、うーんという感じ。まぁ、これは後で解決方法が分かったんであとで書きます。
そこでAmazon EC2ですよ
ハードウェアを必要なリソース分必要な時間だけ貸してくれるAmazon EC2。
サーバーの数を増やすのも簡単にできるらしい。
SaaSではなく、HaaS(Hardware as a Service)だそうだ。
VirtualPCも仮想化だけど、こちらはサーバーの仮想化ですね。
料金は1時間0.1ドルということなので、日本円で11円ぐらい。
一日で244円、一ヶ月で7,320円ぐらい。
格安レンタルサーバーに比べれば高いけど、初期費用なしで、とりあえずサーバーが立ち上げられて、やめるのも簡単ならば、今回みたいに検証とかテストに使うのにもちょうどいい。
仮想マシンで最初からいくつかのOSイメージが用意されているのも便利で、環境構築の手間があまりかからないのも、かなりうれしい。
自分で構築すると、これが一番時間かかるからね。
スペックも1.7GBメモリでHDDは160GB。CPUはどれぐらいのリソースかわからんけど、使った感じそんなに遅さは感じない。
秋葉原にPC買いに行ったり、DELLで注文するよりお手軽でいいんじゃなかろうか。
そんなAmazon EC2を試用できるサイト「RightScale」
RightScaleというサイトで10時間だけ、Amazon EC2を無料で試せます。
GIGAZINEの記事を参考にやってみました。
ユーザー登録して、サーバーインスタンスを起動したら、時間カウント開始。
付属のJavaのコンソールが文字ズレズレで使いづらいので、愛用しているPoderosaで接続。
手順を簡単に書くと、
- 利用するSSHはここを参考に、まずクリップボードコピー。前後のコメントみたいなところもコピーしてテキストファイルに入れてしまうのがポイント。
- puttygenを起動して、このファイルをload。
- メニューのconversionからexport ssh.com keyを選択
- poderosaで、ホストにわけわからん長いホスト名をいれる
- プロトコルとポートはssh
- アカウントroot
- 認証方式は公開鍵
- パスフレーズはrightscaleで設定したパスワード
- 鍵ファイルにさっき作成した鍵ファイル
という感じで、接続できるはず。
Amazon EC2にXOOPSをインストール
XOOPS Cube Legacy2.1.5をダウンロードしてunzipで解凍、htmlの中身を/var/www/htmlに展開。
まずインストール画面がでない。
ログにはmb_languageが定義されていないエラーが出ている。
あてずっぽうで、
yum install php-mbstring
とかしてみたら、mb_languageが使えるようになって先に進んだ。
しかし、、今度はDBインストール時に真っ白画面。
httpdのエラーログにもmessageにもmysqldのログにもなんにもなし。
わからんので、phpMyAdminをインストールしてみた
yum install phpmyadmin
そのままではローカルからしかアクセスできないので、http.d/phpMyAdmin.confで
<Directory /usr/share/phpMyAdmin/>
order deny,allow
deny from all
allow from all
</Directory>
全部許可!
とりあえず、お試しと言うことで(汗)
あれ、なんかphpMyAdminにrootのパスワードがなしになっていると警告が。
設定した気がしていたのだが、気のせいか。
phpMyAdminで、特権の所からパスワード設定。
なぜかlocalhostとか127.0.0.1とか、今のリモートホストとか3つのrootがあるんだが・・・
とりあえず全部パスワード設定しておいた。
もう一回xoopsインストール再開
なるほど、rootのパスワードなしでいれば、さっきも行けたのかもね。
インストールのstep2では文字化け化け。euc-jpにすると表示できるので、先に進む。
そして、
- installディレクトリを削除
- mainfile.phpをchmod 655
これでインストール終了だけど、XOOPS Cube legacy変わりすぎ。
本当にデータ移行できるか心配。
一応、WordPressモジュールはインストールしたらちゃんと動いた。互換性は確保できているみたいだ。
移行テスト
DBの移行が確か面倒だったはず。
Amazon EC2の方はMySQL5.0.44、今のサーバーは3.23.58 。
dbの移行はここを参考。
mysqldump –quick db_name | gzip > db_name.contents.gz
で、バックアップ。
まず、ここで文字化けしないようにdb設定
そして、復元、
mysqladmin create db_name
gunzip < db_name.contents.gz | mysql db_name
これで、ページは表示できるようになった。しかし文字化け。
httpd.confのこれをコメントアウト。でも治らない
#AddDefaultCharset UTF-8
php.iniもここを見て修正。
でも、かわらん
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | ujis |
| character_set_connection | ujis |
| character_set_database | ujis |
| character_set_filesystem | binary |
| character_set_results | ujis |
| character_set_server | ujis |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.00 sec)
まだ、utf8があるのがいかんのか?
my.cnfの[mysqld]に
skip-character-set-client-handshake
を追加。
これでやっと一部まともに表示されるようになった。まだ一部文字化けしているところは、xoopsディレクトリのcacheディレクトリ内を削除して解決。
wikiの書き込みエラーが出るので権限設定
- wiki
- backup
- cache
- diff
たぶん
- attach
- counter
- trackback
も、やるべきなんだろうが、わからん。
しかし、うーん、なぜかトップページでfrontpageが編集できませんとかエラーが出て表示できない。
wordpressも管理画面が変だ。個別記事もリンク切れになる。
何かする度に真っ白になるなぁ・・・。
ここでRightScaleの10時間試用のタイムリミット。
VMWare PlayerでFedora9を新規インストール
ネットで探してみると出来るらしい。
ちょっと設定ファイルを作るだけでFedora9環境完成。
VirtualPCの時よりちゃんと動いているし、なんか速い気がする。
とはいえども
テストするにはVMWareでもいいかもしれないけど、A-tak.comをなるべく止めないようにするにはAmazon EC2を一時的に使うのも手だな。
- Amazon EC2でA-tak.comを構築
- 動作確認後、現行サーバーからEC2にデータをコピーし、EC2でA-tak.comを一時稼働
- その間に現行サーバーのOSなどを入れ直し
- 現行サーバー構築終了後、EC2のデータを現行サーバーにコピー
- Amazon EC2停止
こんな感じか?こうしないと、現行サーバーを構築している間A-tak.comは完全停止してしまう。
すんなり構築がうまくいくかもわからないので、結構リスキーだ。
もし、自分でDELLのサーバーなり買ってきたりしていれば、確かにスペックはあがるかもしれないが、それだけで5万ぐらい出費する上に納期は二週間後とかだ。
Amazon EC2ならば、申し込んですぐサーバーが使えてOSも入れなくていいし、費用も1週間で作業が終わるとすると、1,700円程度。
このお手軽さはいいなぁ。ベンチャー企業なんかにもよく使われているらしいけど、納得です。
#ちなみに冒頭の画像は以下の素材サイトの物を利用させてもらってます。