Edited at

どどんとふ1.46.00 on CentOS 6.6 & Ruby 2.1.6を出来るだけ最小構成で動かすための覚書

More than 3 years have passed since last update.

CentOS6.6をftp.riken.jpのリポジトリよりminimum構成でインストールした後の状態から始めます。

コマンドを実行するユーザはrootである前提で書いてますので、それ以外のユーザで実行する場合はsudoしてください。

あとProxyの必要ない環境を前提としていますので、万が一Proxyの内側でやらなければならないという時にはyumとwgetのProxyの設定はご自分で行ってください。


やること


sshdのセットアップ

準備ではありますが本質ではないので省略します。

PermitRootLogin noとかPortとか設定すれば良いでしょう。


iptablesのセットアップ

これも省略します。

sshdが使うポートとapacheが使うポート、ループバック、ESTABLISHEDとRELATEDを許可してあげてあとは全てDROPしてしまって良いでしょう。


rubyのセットアップ

まず、色々取ってくるためにwgetをyumで取得します。

URL打つのが面倒だったらLynx(CUIで動くWebブラウザ)使ってしまっても良いかもしれません。

yum install wget

Rubyの動作にはyamlが必要なので取得します。

ソースコンパイルしても良いのですが怠けてepelリポジトリから貰ってくることにします。

epel便利だからきっと他にも使うことがあるかもしれないですし。

cd ~

wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm

yum install libyaml-devel

Ruby2.1.6のソースコードを公式Webからダウンロードします。

CentOSのリポジトリからyumで取得すると未だに1.8.7が落ちてくるのでさすがにちょっと…

取得したらtarで展開してその中に移動します。

wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.6.tar.gz

tar -zxvf ruby-2.1.6.tar.gz

cd ruby-2.1.6

実はCentOSのminimum構成ってgccが入っていないので取得します。

makeは最初から入ってるのに何故…?

yum install gcc

./configure

make install


apacheとどどんとふのセットアップ

apacheをインストールします。

どどんとふはzipで配布されているのでunzipも。

yum install httpd unzip

どどんとふをダウンロードして、unzipで展開します。

cd ~

wget http://www.dodontof.com/Download/DodontoF_release/DodontoF_Ver.1.46.00_MASTERPIECE.zip

unzip DodontoF_Ver.1.46.00_MASTERPIECE.zip

どどんとふの必要ファイルを設置します。apacheのvirtual hostとかでDocumentRootを変える必要がある場合は/var/wwwの部分を適宜読み替えてください。

cd DodontoF_Webset

mv * /var/www/

これが今回一番のハマりポイントだったんですが、SELinuxの関係でファイルのセキュリティコンテクストを弄らなければならなかったのでそのためのツールをyumから取得します。

yum install policycoreutils-python

chownでどどんとふのファイルたちの所有権をapacheに移します。

chconでhttpdが読める様にセキュリティコンテクストを変更します。

cd /var/www

chown -R apache:apache public_html/ saveData/

chcon -R -t httpd_sys_content_t public_html/ saveData/

httpdの設定が置いてあるディレクトリに移動し、設定を書き換えます。

cd /etc/httpd/conf

vi httpd.conf

以下がその内容。


httpd.conf

DocumnetRootの変更

DocumentRoot "/var/www/html"
-> DocumentRoot "/var/www/public_html"

CGIスクリプトの有効化と、その拡張子にrbを追加
#AddHandler cgi-script .cgi
-> AddHandler cgi-script .cgi .rb

DocumnetRootの変更に伴う設定対象の修正
<Directory "/var/www/html/">
-> <Directory "/var/www/public_html/">

どどんとふ設置ディレクトリのデフォルトファイルを変更
以下を空いてる場所に追記
<Directory "/var/www/public_html/DodontoF/">
DirectoryIndex DodontoF.swf
</Directory>


Rubyバイナリの場所を確認し、DodontoFServer.rbを書き換えます。

文字コードを指定する-KオプションはRubyの1.8系までのもので、今回使う2.1.6では-Eオプションを使うのでそこも修正します。

which ruby

=>/user/local/bin/ruby

cd /var/www/public_html/DodontoF/

vi DodontoFServer.rb


DodontoFServer.rbの最初の行

#!/user/local/bin/ruby -Ku

-> #!/user/local/bin/ruby -EUTF-8

どどんとふの実行ファイルに実行可能権限を付けます。

chmod 700 DodontoF*.rb

httpdをstartします。

service httpd start

ここまででとりあえず動くはずです。

が、セキュリティとか色々穴だらけなので実際に公開するにはもう少しいじる必要があるでしょう。

具体的にはDocumentRootにアクセスするとindex.htmlがないのでCentOS+apacheのデフォルトページが表示されてしまう、400番台のエラーページがデフォルトになのでOSとapacheバージョンがばれる、などなど。