「どどんとふ」を自宅サーバに構築する

2011年1月26日 改訂・追記
 
今回は「どどんとふ」を自宅サーバに立ててみようと思います。
なお、今回のお題はあくまでもLinux環境での自宅サーバを前提としています。
レンタルサーバに放り込むから関係ないぜ〜」という方は対象外ですので、あしからず。
また、大体の部分でターミナル*1を利用します。
 
使用環境
 ・PC:VMware
 ・OS:Ubuntu 10.04LTS
 ・メモリ:512MB(本体は2GB)
 ・CPU:1CPU(本体はCore2DUO
 
用意する具材
 ・どどんとふ v1.28.00*2
 ・Apache v2.2*3
 ・Perl v5.10.1
 ・Ruby v1.8.7*4
 ・MySQL v5.1*5
 
流れ
 0.環境の準備
 1.Apache(Webサーバ)のインストール
 2.Perl(プログラムを動かすランタイム)のインストール
 3.Ruby(プログラムを動かすランタイム)のインストール
 4.Apacheの設定
 5.どどんとふのインストール
 6.起動確認
 
 
0.環境の準備
VM用のUbuntuは「Ubuntu Japanese Team」よりダウンロードできます。
ダウンロードできるubuntuは8.04LTSなのでVMwareにて起動後、
アップデートする必要があります。
アップデート方法に関しては「Ubuntuデスクトップのネットワークアップグレード」より確認できます。
環境によっては、Ubuntuのアップデートに2〜3時間ほどかかります。
また、アラートメッセージもいくつか出たりしますので、放置しておくこともままなりません。
そのため時間のあるときにこの作業は行ってください。
 
 
1.Apacheのインストール
環境によってはApacheがすでにインストールされている場合があります。
ですので、以下のコマンドでApacheがインストールされているか確認してください。

locate httpd.conf

これだけではどのバージョンがインストールされているかどうかわかりませんが、
とりあえずインストールされています。
起動したり、色々して確認してください。
 
インストール方法はここで確認するより以下のサイトがものすごくわかりやすく解説しているので、
そちらを参考していただけるといい感じです。
DQNEO起業日記
 
 
2.Perlのインストール
特になにもしなくてもUbuntuにはPerlがインストールされていると思います。
気になる方は以下を実行してみてください。

perl -version

バージョンナンバーがドカンと出たら、インストールされています。
何にも出ない方はインストールされていませんので、ガツンとインストールしてしまいましょう。

sudo apt-get install perl*

全く簡単ですね。
 
 
3.Rubyのインストール
「どどんとふ」を動かすためにはRubyがインストールされている必要があります。
Rubyがないと「どどんとふ」プログラムはただの文字列でしかありません。
という訳で、騙されたつもりで端末よりニュルっと以下を入力します。

sudo apt-get install ruby ruby-dev

今回は特別なことはしませんので、以上でRuby1.8.7がインストールされます。*6
以下のコマンドでインストールバージョンが確認できます。

ruby --version
ruby 1.8.7(2010-06-23 patchlevel 299)[i686-linux

のちのちRubyで色々やりたい人はここでRubyGemをインストールするのもいいかも知れません。
まぁ、それは別の話ですけん。
 
 
4.Apacheの設定
基本的な道具はインストールできましたので、早速Apacheの設定をしてしまいましょう。
「どどんとふ」は、Rubyの動くCGIサーバが必要ですので、そのように設定を行う必要があります。
「なに言っでっかわがんねぇ」という方はとりあえず以下の設定を行えば幸せになれます。
 
まず、ApacheにてRubyを動かすために「libapache2-mod-ruby」をインストールします。

sudo apt-get install libapache2-mod-ruby

うむ。全く簡単だ。
さくっと無視して「/etc/apache2/sites-available/default」を編集しましょう。*7


Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride None
Order allow,deny
allow from all
AddHandler cgi-script .cgi .rb .pl

これは「/var/www」配下にあるファイルをCGIとして認識しますという設定です。
記載がない場合やファイルがない場合は勝手に追加してしまいましょう。
次に、「/etc/apache2/mods-available/mime.conf」を編集します。

編集前:
 #AddHandler cgi-script .cgi
 
編集後:
 AddHandler cgi-script .cgi .rb .pl

次に、「/etc/apache2/mods-available/ruby.load」に以下の内容を追記します。


RubySafeLevel 1
RubyRequire apache/ruby-run

これで設定は完了です。
 
 
5.どどんとふのインストール
ダウンロードしてきた「どどんとふ」をサクッと解凍してしまいましょう。*8

sudo unzip ~/DodontoF_Ver.1.28.00_NonFiction.zip

「解凍できねぇよ!」と言う方は解凍ソフトをインストールするなりして、がんばって解凍してください。
 
さて、展開できたらいよいよ設定の記述。。。の前にアクセス権限を先回り設定しておきましょう。
Linuxさんはアクセス権限にうるさいのですが、こちらで色々設定できるのは便利です。

sudo chmod -R 755 ~/DodontoF
sudo chmod -R 666 ~/DodontoF/log.*

これでDodontoF配下のファイルやらフォルダやらが全ていい感じのアクセス権限を得ました。
次にようやく設定を書いていきます。
マニュアルを読むと「DodontoFServer.rb」と「WebCameraCaptureImageUploader.rb」にRubyのパスを記述するとあるので記述しましょう。
1行目にある「#!〜」がRubyのパスです。

編集前:
 #!/usr/local/bin/ruby -Ku
 
編集後:
 #!/usr/bin/ruby -Ku

2つとも同じ箇所になります。全く簡単ですね。
次に「customBot.pl」にPerlのパスを記述します。

編集前:
 #!/usr/local/bin/perl
 
編集後:
 #!/usr/bin/perl

あとはマニュアルの通りにフォルダを移動しましょう。*9

sudo mv ~/DodontoF /var/www
sudo mv /var/www/DodontoF/imageUploadSpace /var/www
sudo mv /var/www/DodontoF/saveData /var

最後に「/var/www/DodontoF/src_ruby/config.rb」を変更しましょう。

編集前:
 $SAVE_DATA_DIR = '.'
 $imageUploadDir = "./imageUploadSpace"
 
編集後:
 $SAVE_DATA_DIR = '../..'
 $imageUploadDir = "../imageUploadSpace"

 
 
6.起動確認
さて、あとはApacheを再起動して動作すればOKです。

sudo /etc/init.d/apache2 restart

以上のコマンドを実行したあと、ブラウザから「http:///DodontoF/DodontoFServer.rb」にアクセスしてみましょう。

#D@EM>#["「どどんとふ」の動作環境は正常に起動しています。"]#

このようなメッセージが出力されれば成功です!
次に、「http:///DodontoF/DodontoF.swf」にアクセスして、
ログイン画面が表示されたら成功です。
おめでとうございます、これにて設定は終了です。*10
さぁ、ゲームをはじめましょう♪
 
 
2011年1月26日 追記項目*11 *12
実は、私の環境では以上の操作だけでは動作しなかった。
私がハマった内容を追記しておく。
 
・DodontoFServer.rbにアクセスしたら500エラーとか言われた
色々と問題をはらんでいる状態です。
とりあえず、Rubyのパスを確認しましょう。
具体的には以下のコマンドを端末より実行してみてください。

<パス>/ruby --version

バージョンナンバーは返ってきているようならば、パス指定はあっています。
あとは、指定ファイルに実行権限があるか確認して下さい。
それでも治らない場合は、Rubyのセキュリティレベルが関係しているかも知れません。
DodontoFServer.rb自体を改変してしまいましょう。

編集前:
if( $isFirstCgi )
$SAFE = 1
elsif( $isModRuby )
$SAFE = 1
else
$SAFE = 0
end
 
編集後:
#if( $isFirstCgi )
# $SAFE = 1
#elsif( $isModRuby )
# $SAFE = 1
#else
# $SAFE = 0
#end

この処理はセキュリティレベルを低下させてしまいますので、十分注意が必要です。
 
・「TypeError: Error #1009 null」とか言われた
このエラーはswfにアクセスした際にポップアップしてくると思います。
これは必要なファイルを読み込めないために起きるエラーです。
私の場合はsaveDataフォルダへのアクセス権がないために発生していました。
可能ならば全てのアクセス権をsaveDataに与えてしまいましょう。

sudo chmod -R 777 /var/saveData

また、画像アップロードも可能にするためimageUploadSpaceフォルダ全部にも権限を与えてしまいましょう。

sudo chmod -R 777 /var/www/imageUploadSpace

自宅サーバ以外では全ての権限を与えると動作しないサーバもありますので、
この点に関しては注意の必要があります。
また、公開サーバなどですべての権限を与えるのは間違ってもやってはいけません。
改ざんの危険性があるためグループ設定などを再度確認することをおすすめします。

*1:Windowsで言うところのコマンドプロンプト

*2:どどんとふ@えくすとりーむ

*3:Apache HTTP SERVER PROJECT

*4:Ruby

*5:日本MySQL ユーザ会

*6:RVMでニヨニヨしたい人はご自由にどうぞ

*7:編集エディタは各自好きなものを利用してください。vmでもvimでもgeditでもどうぞ

*8:ホームフォルダにダウンロードしたものとして解説します。

*9:権限の編集はすでに終わっているのでとばしてOKですよ

*10:今回の解説では様々なセキュリティ対策やその他設定に関しては省いております。安全にプレイすることを考えた場合は、他にも設定を必要としますので、その点はご了承ください。

*11:参考サイト:http://karappi.minidns.net/etchmemo/apache.html

*12:参考サイト:http://mutterofsnowman.blog63.fc2.com/blog-entry-985.html