Я продолжаю сталкиваться с проблемой suexec, когда он говорит, что скрипт cgi отсутствует в корневом каталоге.
Я получаю такую ошибку:
"[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 me@nowhere.com
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
который вы уже упомянули, это ваша конфигурация. Это означает, что вам нужно будет либо перекомпилировать suexec
позволять /app
быть принятым корнем для suexec
или вам нужно будет переместить / скопировать фактические файлы в настроенном suexec
корень.