apache suexec "command not in docroot"
Fehlermeldung:
command not in docroot (/home/site1/cgi-bin/test.pl).
Hier Fand ich dies:
suexec verlangt das CGI-Skript unter der server-DocumentRoot-Verzeichnis (nicht der VirtualHost DocumentRoot). Es ist gestattet, allerdings für den VirtualHost DocumentRoot-Verzeichnis ein symlink auf ein Verzeichnis ist, erscheint unter dem realen DocumentRoot.
einen Teil der virtual-host-Konfiguration ist:
[...]
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, ich bevorzuge es müssen Perl-Skripte in cgi-bin, aber wenn ich kann nicht dieses problem beheben, kann ich alle scripts htdocs.
InformationsquelleAutor Pol Hallen | 2013-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
suEXEC
hat seine eigenedocroot
das ist völlig unabhängig von was auch immer konfigurieren Sie in der Apache-config. Sie können sehen, wassuEXEC
's docroot ist durch den Aufruf:Möglicherweise müssen Sie root sein. In meinem Fall ist das docroot war
/var/www
. Sie müssen Ihre Skripte dort. Es gibt keine Möglichkeit, dies zu ändern, speichern, neu kompilierensuEXEC
. Versuchen Sie nicht, verwenden Sie symbolische links, halten Sie Ihre Skripts außerhalb von/var/www
(oder was auch immer IhrsuEXEC
konfiguriert ist).Edit: wie erwähnt von @insaner in den Kommentaren der Befehl ist wahrscheinlich
suexec
oder, wie ich gesehen habe, die auf mindestens einem serversuexec2
.suEXEC
ist genau das, was die Apache-Dokumentation ruft das Modul/feature.apache2-suexec-custom
ermöglicht mehr Flexibilität.Excelent. Genau das, was ich suchte.
Der Befehl ist eher zu
suexec -V
beachten Sie die Kappen.Fantastisch! Ich war mit einem symlink, die leider nicht funktioniert.
Überprüfen Sie, dass der docroot-Verzeichnis vorhanden ist. zum Beispiel, wenn dein docroot ist "/home" /home-Verzeichnis muss vorhanden sein. und Sie können Befehle in /home1 /home2 und ...
InformationsquelleAutor Thraidh
Ändern DocumentRoot
/home/site1/htdocs
zu DocumentRoot/home/site1/
InformationsquelleAutor user1126070