Page 1 of 1
pl. & command not in docroot
Posted: 2008-03-15 14:30
by tsaenger
Hallo
ich habe Probleme mit meinem Perl auf meinem Server.
Ich setze derzeit noch Debian3.1 sarge ein.
Wenn ich nun versuche im cgi-bin auf eine pl zuzugreifen, bekomme ich im suexec2-log diese meldung:
Code: Select all
[2008-03-15 14:18:50]: uid: (683/web8) gid: (683/683) cmd: tsc.pl
[2008-03-15 14:18:50]: command not in docroot (/home/htdocs/web8/html/cgi-bin/tsc.pl)
Die Dateiberechtigung sieht so aus:
Code: Select all
-rwxr-xr-x 1 web8 web8 119 2008-03-15 14:18 tsc.pl
Ein suexec2 -V ergab:
Code: Select all
-D AP_DOC_ROOT="/home/htdocs"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
Ich versehe nich ganz wieso das nicht im docroot liegen soll.
Kann mir bitte jemand von euch dabei helfen?
Vielen Dank
Tobias
Re: pl. & command not in docroot
Posted: 2008-03-15 17:44
by Joe User
suexec will /home/htdocs/user/public_html und Du hast /home/htdocs/user/html
Re: pl. & command not in docroot
Posted: 2008-03-16 10:41
by tsaenger
Hallo,
vielen Dank für deinen Hinweis.
Nun wollte ich mir den suexec2 neu kompilieren.
Dazu habe ich mir die passenden SRC des Apaches geladen.
Ein ./configure durchgeführt und dann im Support-Ordner die Datei "suexec.h" nach meinen wünschen editiert.
Als ich nun diesen mit "make suexec" erstellen wollte, bekam ich folgende Meldung:
Code: Select all
In file included from suexec.c:35:
suexec.h:97:21: missing terminating " character
make: *** [suexec.lo] Fehler 1
Kannst du mir sagen, wo da mein Fehler liegt/ was ich falsch gemacht habe?
Gruß und vielen Dank
Tobias
Re: pl. & command not in docroot
Posted: 2008-03-16 10:52
by tsaenger
Hi,
habe meine Fehler gefunden. Hatte ein " vergessen.
Nun konnte ich es kompilieren.
mein suexec -V sieht nun so aus:
Code: Select all
-D AP_DOC_ROOT="/home/htdocs"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="html"
Nur leider bekomme ich noch immer die selbe Fehlermeldung beim ausführen:
Code: Select all
[2008-03-16 10:44:09]: uid: (683/web8) gid: (683/683) cmd: tsc.pl
[2008-03-16 10:44:09]: command not in docroot (/home/htdocs/web8/html/cgi-bin/tsc.pl)
Woran könnte es noch liegen? Jemand ne Idee?
Gruß
Tobias
Re: pl. & command not in docroot
Posted: 2008-03-16 11:46
by Roger Wilco
Ist /home/htdocs/web8/html/cgi-bin ein Symlink auf ein anderes Verzeichnis oder /home/htdocs/web8/html/cgi-bin/tsc.pl ein Symlink auf eine andere Datei? Hast du /cgi-bin als Alias im Apache eingerichtet?
Re: pl. & command not in docroot
Posted: 2008-03-16 11:54
by tsaenger
Hallo,
also meines wissens ist es kein Symlink:
Code: Select all
:/home/htdocs/web8/html# ls -lah
insgesamt 40K
drwxr-xr-x 6 web8 www-data 4,0K 2008-03-15 14:31 .
drwxr-xr-x 10 root root 4,0K 2008-01-09 10:12 ..
drwxr-xr-x 3 web8 web8 4,0K 2008-03-16 10:58 cgi-bin
im CGI-Bin befindet sich die angegebene Datei.
Zum Alias:
Code: Select all
<VirtualHost ip:80>
ServerName web8.xx.de
DocumentRoot /home/htdocs/web8/html
SuexecUserGroup web8 web8
ScriptAlias /cgi-bin/ /home/htdocs/web8/html/cgi-bin/
suPHP_ConfigPath /etc/apache2/confixx_phpini/web8
</VirtualHost>
Gruß
Tobias
Re: pl. & command not in docroot
Posted: 2008-03-16 12:50
by Joe User
Der ScriptAlias ist überflüssig...
Re: pl. & command not in docroot
Posted: 2008-03-16 14:05
by oxygen
Wie sieht denn das Script aus? Verweißt vielleicht die Shebang Zeile auf einem falschen Pfad?
Re: pl. & command not in docroot
Posted: 2008-03-16 14:11
by Roger Wilco
oxygen wrote:Wie sieht denn das Script aus? Verweißt vielleicht die Shebang Zeile auf einem falschen Pfad?
Das dürfte SuExec nicht interessieren.
Re: pl. & command not in docroot
Posted: 2008-03-16 14:19
by tsaenger
Hallo,
Die "Shebang Zeile" habe ich schon varriert. Das hat wie von Roger Wilco geschrieben nichts an der Fehlermeldung geändert.
Der Script-Alias ist standardmäßig bei jedem User der CGI/pl ausführen darf automatisch gesetzt.
Noch jemand ne Idee?
Gruß und Danke
Tobias
Re: pl. & command not in docroot
Posted: 2008-03-16 15:52
by Joe User
Werden im Script Binaries aufgerufen die nicht im Docroot liegen?
Re: pl. & command not in docroot
Posted: 2008-03-16 15:57
by tsaenger
Hi,
Nein.
Das Script sieht so aus:
Code: Select all
#!/usr/bin/perl
# hello.pl -- my first perl script!
print "Content-type: text/htmlnn";
print "Hello, world!n";
Gruß
Tobias
Re: pl. & command not in docroot
Posted: 2008-03-16 16:42
by wgot
Hallo,
sind mehrere suexec bzw suexec2 auf dem Server? Wird vom Apachen auch das gleiche verwendet wie bei Konsolenaufruf?
Re: pl. & command not in docroot
Posted: 2008-03-16 16:53
by tsaenger
Hallo,
ich habe tatsächlich 2 suexec2 Versionen finden können:
h1081716:/home/admin# find / -name suexec2
/usr/lib/apache2/suexec2
/usr/sbin/suexec2
ich habe nun mal die neu erstellte von usr/sbin auch noch usr/lib/apache2/ kopiert.
Nun erhalte ich in suexec.log keine Meldung mehr.
In error.log steht allerdings:
Code: Select all
[Sun Mar 16 16:44:33 2008] [error] [client 79.211.140.164] failed to open log file
[Sun Mar 16 16:44:33 2008] [error] [client 79.211.140.164] fopen: No such file or directory
[Sun Mar 16 16:44:33 2008] [error] [client 79.211.140.164] Premature end of script headers: tsc.pl
Laut apache2 liegt auch suexec2 im lib-verz:
Code: Select all
:/usr/lib/apache2# apache2ctl -V
Server version: Apache/2.0.54
Server built: Aug 16 2007 18:44:42
Server's Module Magic Number: 20020903:9
Architecture: 32-bit
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec2"
-D DEFAULT_PIDLOG="/var/run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"
Gruß
Tobias
Re: pl. & command not in docroot
Posted: 2008-03-16 17:03
by tsaenger
Hallo,
Vielen Dank für eure Hilfen.
Ich habe nun mein letzes Problem auch gelöst.
Der Fehler des fopens lag an nem falschen log-File Pfad.
Habe diesen korrigiert und nun funktioniert es auch alles.
Vielen Dank nochmals
Gruß
Tobias