RubyでHTML
RubyでWebスクリプト(CGI)を書きたい(not Rails)
ってことで調べてみた。
考えたら、PHPみたいにHTML吐き出し前提じゃないしね。
こう考えるとPHP手軽だなって改めて思いました。
流れ
実行環境:Fedora17 64bit on VirtualBox
http.confの設定変更
前提としては、perlでやるようにCGIの設定を行う。CGIのモジュールが有効になっていること
# コメントアウトされていないか確認 LoadModule cgi_module modules/mod_cgi.so
任意のDirectoryディレクティブの設定。下記2行追記(今回はYumでインストールしたときのデフォ)
<Directory "/var/www/html"> : <省略> AddHandler cgi-script .rb # ←.rbの拡張子でCGIが動作するよう設定 Options +ExecCGI # ←CGI実行 <省略> : </Directory>
コーディング
ためしにこんな感じで。#!/usr/bin/ruby print "Content-type: text/html\n\n"; print <<EOF <html> <head> </haed> <body> hello,world </body> </html> EOF
トラブルシューティング
アクセスしたらInternalSefverError.ログみると以下がでてた(13)Permission denied: exec of '/var/www/html/hoge.rb' failed
権限の問題かーとおもって実行権限やオーナー確認しても問題なし。。
Apacheの設定を見直しまくるも問題なし。。
実は、SELinuxが邪魔してた模様。。
# setenforce 0
ちゃんとアクセスできた。
罠すぎる。