2013-09-25 3 views
5
сообщение

Ошибка:апач Suexec

command not in docroot (/home/site1/cgi-bin/test.pl). 

Here Я нашел это:

Suexec требует сценарий CGI, чтобы быть под DocumentRoot сервера (а не VirtualHost DocumentRoot) , Однако разрешено, чтобы VirtualHost DocumentRoot был символической ссылкой на каталог, который отображается под реальным DocumentRoot.

часть виртуальной конфигурации хоста является:

[...] 
DirectoryIndex index.html index.html index.php 
DocumentRoot /home/site1/htdocs 

SuexecUserGroup site1 site1 

ScriptAlias /cgi-bin/ /home/site1/cgi-bin/ 
<Location /home/site1/cgi-bin> 
      Options +ExecCGI 
</Location> 

<Directory /home/site1/> 
Options -Includes -Indexes -FollowSymLinks +ExecCGI MultiViews 
AddHandler cgi-script .cgi .pl 
AllowOverride none 
Order allow,deny 
Allow from all 
</Directory> 
[...] 

Поэтому я предпочитаю иметь сценарии Perl внутри CGI-BIN, но если я не могу решить эту проблему, я могу переместить все скрипты HTDOCS.

ответ

13

suEXEC имеет свой собственный docroot, который является полностью независимым от любой настройки в вашей Apache конфигурации. Вы можете увидеть, что DOCROOT suEXEC «s это по телефону:

suexec -V 

Вы, возможно, потребуется корень для этого. В моем случае docroot был /var/www. Вы должны будете разместить свои скрипты. Невозможно изменить это сохранение, перекомпилировав suEXEC. Не пытайтесь использовать символические ссылки, чтобы сохранить ваши скрипты за пределами /var/www (или независимо от вашего suEXEC).

Редактировать: как указано @insaner в комментариях, возможно, команда suexec или, как я видел, по крайней мере, на одном сервере suexec2. suEXEC - это то, что документация Apache вызывает модуль/функцию.

+3

Пакет 'apache2-suexec-custom' обеспечивает большую гибкость. –

+0

Отличный. Именно то, что я искал. –

+0

Команда, скорее всего, будет 'suexec -V', заметьте шапки. – insaner

Смежные вопросы