cgi nicht ausführbar

zueper

New Member
Hi,

ich habe ein root Server bei der fast it stehen. Ich stehe vor folgendem Problem:

Alle Dateien mit der Endung pl oder cgi werden als download zurück gegeben. Rechte habe ich natürlich 755 gemacht. Die Datei liegt auch im cgi-bin Verzeichnis.

http://www.totheshow.de/cgi-bin/env.cgi

Dazu sei noch gesagt das perl generell funktioniert die aw stats werden zB angezeigt.

Woran kann das liegen? Auf dem Server läuft Suse 10.2 und confixx 3 pro.

Für Hilfe bin ich echt dankbar.

Gruß
zueper
 
Hallo!
In Confixx ist das ausführen von CGI erlaubt worden? Was steht im Apache ErrorLog?

mfG
Thorsten
 
Hi,

in der error_log wird nichts davon angezeigt. Jo, in confixx ist alles so eingestellt das es erlaubt ist.

Hier die letzten logs:
Mon Oct 01 08:10:30 2007] [warn] Init: You should not use name-based virtual hosts in conjunction with SSL!!
[Mon Oct 01 08:10:30 2007] [notice] Apache/2.2.3 (Linux/SUSE) configured -- resuming normal operations
[Mon Oct 01 08:12:13 2007] [notice] caught SIGTERM, shutting down
[Mon Oct 01 08:12:14 2007] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Mon Oct 01 08:12:14 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec2)
[Mon Oct 01 08:12:14 2007] [notice] Apache/2.2.3 (Linux/SUSE) configured -- resuming normal operations
[Mon Oct 01 08:17:18 2007] [notice] caught SIGTERM, shutting down

Gruß
zueper
 
Last edited by a moderator:
Hallo!
Keine Fehlermeldung? Weder im ErrorLog der Domain noch im Standard Error Log (/var/log/apache2/error_log)?

mfG
Thorsten
 
Hi,

äh ja, entschuldige:

Hier der Fehler log:
s232:/var/log/apache2 # tail -f error_log
[Fri Feb 01 16:25:39 2008] [error] [client 193.159.182.179] script '/home/www/we b10/html/phpinfo.php' not found or unable to stat
[Fri Feb 01 16:25:42 2008] [error] [client 193.159.182.179] script '/home/www/we b10/html/info.php' not found or unable to stat
[Fri Feb 01 16:25:47 2008] [error] [client 193.159.182.179] File does not exist: /home/www/web10/html/stat, referer: Totheshow.de | Mitfahrgelegenheiten.::.Konzertdatenbank.::.Community.::.Magazin
[Fri Feb 01 16:26:05 2008] [error] [client 89.54.60.14] File does not exist: /ho me/www/web10/html/favicon.ico
[Fri Feb 01 16:26:50 2008] [error] [client 193.159.182.179] attempt to invoke di rectory as script: /home/www/web10/html/cgi-bin/
[Fri Feb 01 16:28:12 2008] [error] [client 206.212.243.82] File does not exist: /home/www/web2/html/forum
[Fri Feb 01 16:28:12 2008] [error] [client 206.212.243.82] File does not exist: /home/www/web2/html/forum
[Fri Feb 01 16:29:44 2008] [error] [client 89.54.60.14] File does not exist: /ho me/www/web10/html/favicon.ico
[Fri Feb 01 16:30:22 2008] [error] [client 84.56.195.152] /usr/sbin/suexec2: err or while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory, referer: server/22644-cgi-nicht-ausf-hrbar.html
[Fri Feb 01 16:30:22 2008] [error] [client 84.56.195.152] Premature end of scrip t headers: env.cgi, referer: r/22644-cgi-nicht-ausf-hrbar.html
 
Last edited by a moderator:
Ganz kurze Frage:

Ist es normal dass in 'web10' eine Leerstelle ist?
Code:
'/home/www/we b10/html/phpinfo.php' not found or unable to stat
 
Bin auch bei webtropia / fastit und habe gerade genau das gleiche Problem.
Hatte bei denen angerufen und die haben mir gesagt ich soll im zkm unter den FAQ schaun.

Unter
FAQ
- Software
- Webserver
- CGI Skripte (.cgi und .pl) werden nicht ausgeführt

findest Du folgende Beschreibung:

Webserver: CGI Skripte (.cgi und .pl) werden nicht ausgeführt

Betrifft:

alle dedizierten Systeme mit Confixx Webinterface und alle V-Server mit Confixx und Apache Webserver 2.0

(auf Plesk-Systeme treffen die generischen Informationen ebenfalls zu)



Problem:

CGI-Skripte auf meinem System werden nicht ausgeführt. Ich erhalte eine Fehlermeldung (z.B. 500 Internal Server Error) oder bekomme die Datei zum Download angeboten, wenn ich sie aufrufe.



Mögliche Ursachen und Lösungen:


1.: Richtiges CGI-Verzeichnis

Standardmäßig werden CGI-Skripte nur verarbeitet, wenn sie im Verzeichnis /cgi-bin/ liegen, welches von der Confixx-Software unter dem Ordner /html/ automatisch erstellt wird.

Außerhalb dieses Verzeichnisses werden CGI-Skripte nur ausgeführt, wenn Sie dies in Confixx (als Endkunde!) speziell freigeben. Diese Freigabe liegt etwas versteckt in der Übersicht unter "Allgemein" beim Endkunden, der Punkt lautet

CGI/Perl außerhalb cgi-bin | Deaktiviert ändern

Deaktiviert ist die Voreinstellung.


2.: CGI außerhalb /cgi-bin/ und es klappt trotzdem nicht!

Überprüfen Sie, ob in der Datei /etc/apache2/mod_mime-defaults.conf der folgende Eintrag existiert:

AddHandler cgi-script cgi pl pm

Existiert diese Eintrag nicht, so fügen Sie ihn am Ende der Datei ein. Benutzen Sie zur Bearbeitung von Linux-Textdateien aber niemals einen Windows-Editor, sondern einen Linux-Editor wie z.B. joe oder mcedit! (mcedit ist der integrierte Editor aus dem Midnight Commander (Norton Commander Clone), welcher mit mc aufgerufen wird)

Nach einer Änderung an der Datei müssen Sie den Apache Webserver neu starten:

/etc/init.d/apache2 stop && /etc/init.d/apache2 start


3.: Richtige Rechte gesetzt?

CGI-Skripte dürfen Sie in Sachen Benutzer und Gruppe nach dem FTP-Upload NICHT verändert werden, d.h. es bleibt bei Besitzer = webXX und Gruppe entweder auch = webXX oder Gruppe = ftponly (das hängt vom System ab).

Wichtig ist jedoch, daß Sie die Ausführungsrechte aktivieren, und zwar müssen CGI-Skript (.cgi und .pl) auf chmod 0755 gestellt werden. Stellen Sie die Rechte aber NICHT (wie von manchen Skripten in der Dokumentation gefordert) auf 777 - so bekommen Sie ganz gewiss Probleme mit 500 Internal Server Error.


4.: suexec2

Mit dem suexec2 Sicherheitsmechanismus wird überprüft, ob ein CGI-Skript ausgeführt werden darf oder nicht. Dazu müssen nicht nur die Berechtigungen stimmen, sondern auch der in suexec2 fest einkompilierte Pfad.

Rufen Sie auf der SSH root Shell

suexec2 -V

aus.

Unter Debian müssen Sie folgenden Befehl verwenden:

/usr/lib/apache2/suexec -V

Es sollte u.a. folgende Ausgabe erscheinen:

-D AP_DOC_ROOT="/home/www"

Erscheint stattdessen ein anderes Verzeichnis, z.B. /srv/www/htdocs, so haben Sie wahrscheinlich über ein SuSE Online Update ein Apache Update installiert, welches die suexec2 durch eine von SuSE vorgegebene ersetzt hat.

Korrekturmaßnahme:

Geben Sie folgende Befehle auf der SSH root Shell ein:

cd /usr/sbin
ls -la suexec*

Bekommen Sie nur die Datei suexec2 angezeigt, so müssen Sie sich eine korrekte Datei besorgen und einspielen, dazu unten mehr. Finden Sie jedoch neben der suexec2 noch eine suexec2.correct, so genügt folgender Befehl, um das Problem zu lösen:

cp -pv suexec2.correct suexec2

Unter Debian führen Sie die Korrektur folgendermaßen durch:
cd /usr/lib/apache2/
wget http://download.fastit.net/software/suexec-Debian.correct -O suexec
chmod 4755 suexec

Danach sollte suexec2 -V wieder den richtigen Pfad ausgeben (unter Debian: /usr/lib/apache2/suexec -V).

Nach einer Änderung an der Datei müssen Sie den Apache Webserver neu starten:

/etc/init.d/apache2 stop && /etc/init.d/apache2 start

Download der korrekten Datei:
(wenn Sie keine suexec2.correct besitzen)

Haben Sie keine suexec2.correct vorgefunden, die den Pfad /home/www ausweist, so können Sie sich eine solche Datei bei uns downloaden und installieren. Geben Sie dazu ein:

wget http://download.fastit.net/software/suexec2.correct
chmod 4755 suexec2.correct
cp -pv suexec2.correct suexec2

Auch hiernach muss der Apache2 Webserver wie oben beschrieben neu gestartet werden.


5.: Ich habe immer noch Probleme!

Wenn Sie weiterhin Probleme mit CGI-Skripten haben, obwohl Sie ALLE Hinweise in diesem Artikel beachtet und überprüft haben, so eröffnen Sie bitte ein Support-Ticket. Bitte beachten Sie jedoch, daß wir nicht bei spezifischen Problemen helfen können, d.h. wenn ein Skript funktioniert und ein anderes nicht, so liegt es vermutlich am Skript und unsere Hilfsmöglichkeiten sind sehr begrenzt. (Skript-Debugging ist NICHT in unserem Standardsupport enthalten!)

Letzte Änderung: 21.03.2005 12:17:13

Ich bin alle Schritte soweit durchgegangen und bei mir funktioniert es immer noch nicht!
Bei mir kommt erschwerend hinzu das ich Debian als OS habe und bei Punkt 2. der Erklärung musste ich erstmal herausfinden das ich nicht die /etc/apache2/mod_mime-defaults.conf habe und es stattdessen in die httpd.conf eintragen musste. Ist doch richtig oder?

So sieht meine httpd.conf jetzt aus:
Code:
Alias /phpMyAdmin /var/www//phpmyadmin/
<Directory '/var/www/phpmyadmin/'>

php_admin_value open_basedir /var/www/phpmyadmin/:/usr/share/phpmyadmin:/tmp/:/etc/phpmyadmin/
AllowOverride None
Order deny,allow
Allow from all
AddHandler cgi-script cgi pl pm
</Directory>

Da ich eigentlich Webdesigner bin und root Server Handhabung neu für mich ist steh ich da ziemlich aufm Schlauch und bin auf fremde Hilfe angewiesen.

Gruss
Peter
 
hab mir gerade spasseshalber mal die etc/apache2/apache2.conf angesehen und folgendes gefunden:

Code:
    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    #AddHandler cgi-script .cgi

Wie Du siehst ist der Handler noch ausgeklammert.
Ich hab ihn bei mir ausgeklammert (das # weg davor)
und die Zeile noch erweitert um .pl .pm

Sieht dann so aus:
Code:
    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    AddHandler cgi-script .cgi .pl .pm

Wie Du ja lesen kannst soll man die die ExecCGI noch anpassen, die schau ich mir jetzt grade mal an und schreib danach nochmal was zu...
Wäre schön wenn mal ein Fachmann was dazu schreibt ob das oben so richtig war das einzustellen...
 
Last edited by a moderator:
Code:
[Fri Feb 01 16:30:22 2008] [error] [client 84.56.195.152] /usr/sbin/suexec2: err or while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory, referer: http://serversupportforum.de/forum/dedizierte- server/22644-cgi-nicht-ausf-hrbar.html
Das SuExec Binary ist kaputt bzw. verlangt nach der zlib, die nicht installiert ist.
 
nachdem ich nochmal ein supportticket geschrieben habe hat man sich meiner Sache angenommen.

/usr/lib/apache2/suexec das s-Bit wegnehmen war die aussage des supporters sei wohl des rätsels lösung. allerdings spuckt der apache beim starten dann immer Fehlermeldungen aus, scheint wohl ein Bug im Apache zu sein der im nächsten Release wohl behoben wird.
 
Hallo,

suexec das s-Bit wegnehmen
nö, sieht mehr nach Bug im Supporter aus :D

suexec kann nicht funktionieren ohne S-Bit.

Apache läuft (hoffentlich) unter eigenem User, suexec muß auf einen anderen User umschalten, dafür braucht es vorübergehend Rootrechte.
 
Back
Top