2005-03-04 [長年日記]
_ [linux][apache] シンボリックリンクを辿らない。
FC3のapache2でおおはまり。 CGIを実体でアクセスすると実行できるのだが、 シンボリックリンクでアクセスすると/var/log/httpd/error_log "Premature end of script"と出てらちがあかない。 /etc/httpd/conf/httpd.confのFollowSymLinksとかExecCGIとかSymLinksIfOwnerMatchとか疑ってみるけど一向に直らない。 ネットで調べたところ、 どうやらFC3のapacheはsuExecというセキュリティモジュールがONになっていて、 この状態だとこのエラーが起こるようだ。
#!/usr/bin/env ruby require 'index.rb'シンボリックリンクの代わりに↑とかやればできるらしいのだが、 社内サーバなのでセキュリティよりも管理コストを下げたい。 ぶっちゃけ今までと同じように使いたい。のでsuExecをOFFにした。↓このファイルを削除して、apacheを再起動すれば良いすればいいらしい。
/usr/sbin/suexec/usr/sbin/suexecをsuexec.disableなどへリネーム。 一応、httpd.confのsuexecモジュールを組み込んでいる行もコメントアウトしておく。
httpd.conf #LoadModule suexec_module modules/mod_suexec.so apache再起動 # apachectl restartところで↑と↓とどっちがいいのかな?同じだったらいいのだけど。
# /etc/init.d/httpd restartんで、やっと今までと同じディレクトリ構成でtdiaryが動きました。(^^)