目次

CGIの設置

慣れているようで忘れやすいポイントを列記予定。とりあえず恐怖の大王500サーバーエラー対策。

とりあえずやること

とりあえず何をどうしてもApacheのドキュメントを見る(これは2.0系なので適時よみかえよ

ユーザー領域にCGIを置きたい(httpd.conf編)

.htaccess編は略。 セキュリティとか考えないのであれば、単純に

<Directory /home/*/public_html/cgi-bin>
    AddHandler cgi-script .cgi
    Options +ExecCGI
</Directory>

とかやればいい。 もちろん apachectl -k restart をしよう。

恐怖の大王がなかなか帰ってくれない

error-logを見ても例のアレ(Premature end of script headers)しか出ないので、大王の真意をきいてみることにする。suexecだ。ただしかなり危険(ようは誰でもrootで操作できるってことです) suexec -V すると

AP_LOG_EXEC="/var/log/xxxxx/xxxx/suexec.log"

みたいにsuexecのログのありかがでてくるので、そこをtailするとだいたいの本音が読める。ちなみに(もちろんだけど)suexecでは実行できたやつももちろんログとして残る。

777じゃいけないよ

最近のはやりかどうか、とりあえず動けばいいや的にCGIのパーミッションを全開(777)にしていると怒られる。その際はsuexec.logに

file is writable by others

といったメッセージが出るので、chmod 755 とかしておくこと。設置ディレクトリ、設置CGIともにチェックしておく。