Help us understand the problem. What is going on with this article?

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

More than 5 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バージョンがばれる、などなど。

fusagiko
terraform(AWS)からansibleとRailsを通ってReactあたりまでの人
dwango
Born in the net, Connected by the net.
https://dwango.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした