suEXEC設定

http://httpd.apache.org/docs-2.0/ja/suexec.html参照。

ユーザが複数居る環境だったらsuEXEC化した方が良いからメモ。
CGIの作ったログファイル消えないって良く言われるのよね。
コンパイルが必要だから、rpmとかで入れてたらちゃんと抜いておいてね。

$ tar zxvf httpd-2.0.50.tar.gz
$ cd httpd-2.0.50
$ ./configure --enable-suexec \
 --with-suexec-caller=nobody \
 --with-suexec-userdir=public_html \
 --with-suexec-docroot=/usr/local/apache2/htdocs \
 --with-suexec-logfile=/usr/local/apache2/logs/suexec_log \
 --with-suexec-uidmin=500 \
 --with-suexec-gidmin=500
$ make
$ su
# make install

他のオプションは自分で決めてね?

細かい説明に行くわよ。

  • --enable-suexec

suEXEC有効化のオプションよ。
これを付けないとそもそも意味が無いわ。

  • --with-suexec-caller

Apache2自身を動かすユーザを指定するわよ。
上の例だとnobodyね。

  • --with-suexec-userdir

UserDirディレクティブに対してアクセスする場合に必要よ。
たとえば、http://hogehoge/~hoge/ってアクセスね。
UserDirディレクティブに設定したディレクトリ名を指定すれば良いわよ。
たとえば、デフォルトだと「public_html」ね。

  • --with-suexec-docroot

こっちはドキュメントルートを指定するわ。
httpd.confと同じようにドキュメントルートを指定してあげてね。

  • --with-suexec-logfile

これはsuEXECの動作のログを吐き出す場所をしていするオプションね。
デフォルトで「/usr/local/apache2/logs/」に吐き出されるから、名前とか変えなくてもいいんだったら使わなくてもいいわよ。

  • --with-suexec-uidmin

これはsuEXECを有効にするuidの最低値ね。
Fedora Coreだったら500以降がユーザのはずだから、500って指定すれば良いわね。

  • --with-suexec-gidmin

こっちはsuEXECを有効にするgidの最低値ね。
こっちも500以降がユーザのgidのはずだから、500でいいわよ。

他にもオプションはあるのだけど、それは./configure --helpで確認してね。

suEXECが動いているかを確認する方法は、Apacheを起動させた後にエラーログを見てみてね。

tail /usr/local/apache2/logs/error_log
     :
     :
suEXEC mechanism enabled (wrapper: /usr/local/apache2/bin/suexec) 

suEXECが動いてることが確認できたら、ちゃんとファイルの権限を確認しておかなきゃ駄目よ?
下にリストを用意しておくから、確認してちょうだい。

  • ユーザディレクトリ:755
  • public_html:711
  • 実行ファイル:701
  • ログファイル:600
  • ロックフォルダ等:701