Назад | Перейти на главную страницу

Путаница на SUEXEC и DOCROOT

Я продолжаю сталкиваться с проблемой 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 корень.