web-dev-qa-db-ja.com

SUEXECとDOCROOTの混乱

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
3
user770395

シンボリックリンクではなく、ファイルの実際の場所が、suexecがファイルを実行するかどうかを決定します。その設定はsuexecにコンパイルされ、変更するには再コンパイルする必要があります。デフォルトでは、これは/var/wwwにありますが、これは構成です。つまり、/appsuexecの受け入れルートにするには、suexecを再コンパイルするか、構成済みのsuexecルート内の実際のファイルを移動/コピーする必要があります。

1
Emmaly Wilson