Cgiスクリプトがdocrootにないというsuexecの問題が発生し続けています。
このエラーが発生します:
"[2012-05-21 04:53:02]: command not in docroot (/apps/dctools/www/cgi-bin/test.cgi)"
Cgiファイルがある場所へのシンボリックリンクがあります。シンボリックリンクはsuexecの問題ですか?
仮想ホスト構成の使用。
Apache docroot: /var/www/html
suexec docroot: /var/www
仮想ホスト構成
<VirtualHost 10.1.1.1:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/dctools
ServerName dctools.nowhere.com
ErrorLog logs/dctools.nowhere.com-error_log
CustomLog logs/dctools.nowhere.com-access_log common
SuexecUserGroup me white
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/dctools/"
<Directory "/var/www/dctools/cgi-bin">
AllowOverride None
Options None
Options FollowSymlinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
シンボリックリンク設定
-sh-3.2$ pwd
/var/www/html
-sh-3.2$ ls -l
lrwxrwxrwx 1 root root 17 May 14 21:06 dctools -> /apps/dctools/www
-sh-3.2$ pwd
/var/www/cgi-bin
-sh-3.2$ ls -l
lrwxrwxrwx 1 root root 21 May 14 21:47 dctools -> /apps/dctools/cgi-bin
シンボリックリンクではなく、ファイルの実際の場所が、suexec
がファイルを実行するかどうかを決定します。その設定はsuexec
にコンパイルされ、変更するには再コンパイルする必要があります。デフォルトでは、これは/var/www
にありますが、これは構成です。つまり、/app
をsuexec
の受け入れルートにするには、suexec
を再コンパイルするか、構成済みのsuexec
ルート内の実際のファイルを移動/コピーする必要があります。