2013-09-25 2 views
5

Fehlermeldung ist:Apache suexec "Befehl nicht in docroot"

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

Here ich dies gefunden:

suexec erfordert das CGI-Skript unter dem Server des DocumentRoot (nicht der Virtual DocumentRoot) zu sein . Es ist jedoch zulässig, dass das VirtualHost DocumentRoot ein Symlink zu einem Verzeichnis ist, das unter dem echten DocumentRoot erscheint.

ein Teil des virtuellen Host-config:

[...] 
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> 
[...] 

So ziehe ich Perl-Skripte innerhalb cgi-ist, aber wenn ich dieses Problem nicht lösen kann, kann ich alle Skripte zu htdocs bewegen.

Antwort

13

suEXEC seine eigenen docroot hat, die völlig unabhängig davon ist, was Sie in Ihrem Apache Config konfigurieren. Sie können sehen, was suEXEC ‚s docroot durch den Aufruf ist:

suexec -V 

Unter Umständen müssen Sie für das root sein. In meinem Fall war die Docroot /var/www. Sie müssen Ihre Skripte dort ablegen. Es gibt keine Möglichkeit, diese Sicherung zu ändern, indem Sie sie erneut kompilieren suEXEC. Versuchen Sie nicht, symbolische Links zu verwenden, um Ihre Skripte außerhalb von /var/www zu halten (oder was auch immer für suEXEC konfiguriert ist).

Edit: wie von @insaner in den Kommentaren erwähnt ist der Befehl wahrscheinlich suexec oder wie ich auf mindestens einem Server suexec2 gesehen habe. suEXEC ist genau das, was die Apache-Dokumentation das Modul/Feature nennt.

+3

Das Paket 'apache2-suexec-custom' ermöglicht mehr Flexibilität. –

+0

Ausgezeichnet. Genau das, was ich gesucht habe. –

+0

Der Befehl ist wahrscheinlicher 'suexec -V', beachten Sie die Großbuchstaben. – insaner

-4

ändern DocumentRoot /home/site1/htdocs DocumentRoot /home/site1/

Verwandte Themen