debian apache2 suexec package

sourceではやったことあるけど、dpkg ではやったことないので。

ref.


apache2とsuexec install。

# apt-get install apache2 apache2-suexec

suexecのconfigure option 確認

# /usr/lib/apache2/suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"

あとはsuexecの条件を満たすように設定。ここまでは簡単。

suexec を動作させるディレクトリを変更したい場合

suexec が --with-suexec-docroot=/var/www, --with-suexec-userdir=public_html で設定されているので、virtualhostを設定した場合などに、ディレクトリ構成が違うとsuexecが動かなくなる。

そんな場合は apache2-suexec-custom packageを入れる(apache2-suexec は削除される) 。

# apt-egt install apache2-suexec-custom 
  • 設定確認
# /usr/lib/apache2/suexec -V
-D SUEXEC_CONFIG_DIR=/etc/apache2/suexec/
-D AP_GID_MIN=100
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
設定ファイル

/etc/apache2/suexec/www-data を編集する。

/var/www
public_html/cgi-bin
#/var/www
# The first two lines contain the suexec document root and the suexec userdir
# suffix. Both features can be disabled separately by prepending a # character.
# This config file is only used by the apache2-suexec-custom package.
  • 1行目に --with-suexec-docroot (AP_DOC_ROOT) のディレクトリ
  • 2行目に --with-suexec-userdir (AP_USERDIR_SUFFIX) のディレクトリ
注意点

"Both features can be disabled separately by prepending a # character."
とあるので、元の設定を残そうとして1,2行目にコメントなどをしてると動かないので注意。
# 間違い

1行目 #/var/www
2行目 /home/hogem
3行目 public_html