PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache2 führt keine CGI Scripte aus



abalorio
30.01.08, 23:26
Hi, ich verzweifel langsam... ich hab heute den ganzen Tag damit verbracht an der Config von apache2 zu basteln aber ich bekomme einfach CGI´s nicht zum laufen. Wenn Apache2 diese mal nicht zum download anbietet bekomme ich komische Fehlermeldungen. Eingesetzt wird Suse Linux 10.1, Apache2, PHP5, etc. (bei Fragen einfach raus damit).

Folgendes ist (war) eingestellt:


/etc/apache2/sysconfig.d/loadmodule.conf:

LoadModule cgi_module /usr/lib64/apache2-prefork/mod_cgi.so



In der default-server.conf:

ScriptAlias /cgi-bin/ "/home/www/docs/testdomain/cgi-bin/"

<Directory "/home/www/docs/testdomain/cgi-bin/">
Options +ExecCG
</Directory>

Das sollte ja eigentlich schon reichen... funktioniert aber nicht. Habe noch einige anderen Möglichkeiten probiert. OHNE ERFOLG!

Ich hoffe jemand von euch kann mir helfen - Danke !!!

marce
31.01.08, 06:21
zum einen: Ich kaufe ein "I".

Zum anderen - sind die Scripte ausführbar, stimmen sonstige Zuordnungen, She-Bang enthalten.

Desweiteren: "Du bekommst komische Fehlermeldungen" - is' nich' wahr. Und wie lauten die? Was steht im Logfile? ...

abalorio
31.01.08, 07:50
Sorry, hätte ich mit posten sollen...war wohl etwas spät gestern.

Erste Fehlermeldung:


[Wed Jan 30 23:34:21 2008] [error] [client 70.167.113.247] Options ExecCGI is off in this directory: /home/www/docs/testdomain/cgi-bin/testscript.cgi, referer: http://www.testdomain.de/sites/various/suche.htm
[Wed Jan 30 23:34:22 2008] [error] [client 70.167.113.247] Options ExecCGI is off in this directory: /home/www/docs/testdomain/cgi-bin/testscript.cgi, referer: http://www.testdomain.de/sites/various/suche.htm

Diesen Fehler konnte ich durch setzten von "Options +ExecCGI" beheben.


Jetzige LogEinträge zu diesem Thema:



[Thu Jan 31 06:57:27 2008] [error] [client 198.200.70.22] /home/www/docs/testdomain/cgi-bin/testscript.cgi: error while loading shared libraries: libmysqlclient.so.12: cannot open shared object file: No such file or directory, referer: http://www.testdomain.de/sites/various/suche.htm
[Thu Jan 31 06:57:27 2008] [error] [client 198.200.70.22] Premature end of script headers: testscript.cgi, referer: http://www.testdomain.de/sites/various/suche.htm
[Thu Jan 31 06:57:44 2008] [error] [client 198.200.70.22] /home/www/docs/testdomain/cgi-bin/testscript.cgi: error while loading shared libraries: libmysqlclient.so.12: cannot open shared object file: No such file or directory, referer: http://www.testdomain.de/sites/various/suche.htm
[Thu Jan 31 06:57:44 2008] [error] [client 198.200.70.22] Premature end of script headers: testscript.cgi, referer: http://www.testdomain.de/sites/various/suche.htm



Ja, die Scripte sind ausführbar und die Rechts sind komplett gesetzt.

marce
31.01.08, 07:54
[Thu Jan 31 06:57:27 2008] [error] [client 198.200.70.22] /home/www/docs/testdomain/cgi-bin/testscript.cgi: error while loading shared libraries: libmysqlclient.so.12: cannot open shared object file: No such file or directory, referer: http://www.testdomain.de/sites/various/suche.htm
Da fehlt wohl einfach ein Paket.




[Thu Jan 31 06:57:27 2008] [error] [client 198.200.70.22] Premature end of script headers: testscript.cgi, referer: http://www.testdomain.de/sites/various/suche.htm
Das sieht nach fehlendem SheBang oder Syntax-Fehler im Script aus.

Laufen die Scripte denn problemlos an der Konsole?

abalorio
31.01.08, 08:12
Die Scripte laufen auf einem anderen System problemlos. Wo ist "libmysqlclient.so.12" enthalten?

marce
31.01.08, 08:13
Auf einem anderen System kann aber alles anders sein - daher: Laufen sie auf dem Zielsystem an der Konsole problemlos? Ist der She-Bang enthalten?

abalorio
31.01.08, 08:21
Das Script ist von mnGosearch! Wenn ich es via


perl -c script.cgi

aufrufe bekomme ich folgende Fehlermeldung:


Unrecognized character \x7F at script.cgi line 1.

marce
31.01.08, 08:28
Ok, da hast Du die Ursache doch schon.

Hast Du die Software installiert oder von dem anderen System einfach herüberkopiert? Da scheint was mit dem Encoding der Datei nicht 100% zu stimmmen - evtl. weil wegen Umweg per ftp über ein Windowssystem.

Was bei solchen Problemen meist funktioniert ist, die Datei im vi zu öffnen und die erste Zeile mit dem SheBang zu löschen und neu reinzuschreiben - vermutlich hat sich da einfach ein doofes Steuerzeichen reingehängt, das das nix verloren hat...

Google einfach mal nach der Fehlermeldung...

abalorio
31.01.08, 08:58
Nein, ich hab die CGI-Datei vom alten System (Suse Linux) übertragen - erst als tar gepackt und dann per ftp übertragen. Ich kann die Datei nicht öffnen und sozusagen umschreiben, weil diese codiert ist. Bin auch der Meinung, dass die Datei korrekt ist. Das System kann sie wohl 'nur' nicht dekodieren.

Die Datei ist von "mnogosearch"... das ist doch in C geschrieben oder?

marce
31.01.08, 09:04
Ich hab mnogosearch hier auf keinem Rechner mehr, kann also leider nicht selbst nachschauen und hab' auch keine Lust, auf der Webseite zu suchen.

Daher mal 'ne doofe Frage: Wenn es ein C++-Binary ist, wieso führst Du es dann mit Perl aus? Hast Du für .cgi eine Verknüpfung zu Perl im Apache eingerichtet? Das würde so einiges erklären...

abalorio
31.01.08, 09:38
Wie soll ich das .cgi sonst ausführen auf der Shell?

marce
31.01.08, 09:48
wenn es ein Binary ist - wie jedes andere Binary. z.B. mit ./$dateiname

abalorio
04.02.08, 10:12
Hi, danke für die Hilfe aber ich hab das Problem mittlerweile gelöst. Ich hab die Konfiguration von Apache2 geändert (dann hatte ich nur noch die lib-Fehlermeldung). Nachdem ich dann die libmysqlclient-libs rüber kopiert habe (vom alten System) lief alles!!!