====== CGIの設置 ====== 慣れているようで忘れやすいポイントを列記予定。とりあえず恐怖の大王500サーバーエラー対策。 ===== とりあえずやること ===== とりあえず何をどうしても[[http://httpd.apache.org/docs/2.0/howto/cgi.html|Apacheのドキュメント]]を見る(これは2.0系なので適時よみかえよ ===== ユーザー領域にCGIを置きたい(httpd.conf編) ===== .htaccess編は略。 セキュリティとか考えないのであれば、単純に AddHandler cgi-script .cgi Options +ExecCGI とかやればいい。 もちろん 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ともにチェックしておく。