Lokaler ftp will CGI nicht ausführen
Sven Hübner
- cgi
0 Cheatah
also ich hab omnihttpd prof. installiert. das funktioniert auch. wenn ich jetzt aber ne seite mit CGI aufrufe, sag der IE immer:
HTTP 500 - Interner Serverfehler
Internet Explorer
der omnihttpd bringt die meldung:
127.0.0.1 localhost - [08/Feb/2002:12:15:15 +0100] "GET /codex/load.pl?news HTTP/1.1" 500 203 "http://localhost/codex/" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"
Standard CGI: "C:\PERL\BIN\PERL.EXE" "D:\ClanHP\codex\load.pl" news - Launched failed; error code = 3, Das System kann den angegebenen Pfad nicht finden.
wo liegt mein Fehler??
thx im voraus
Hi,
erst mal zum Subject: FTP und CGI haben nichts (in Worten: nichts) miteinander zu tun. OmniHTTPd ist - wie der Name schon sagt - ein HTTP-Server.
also ich hab omnihttpd prof. installiert.
Ich empfehle Apache.
HTTP 500 - Interner Serverfehler
Browsermeldung == egal, Error-Log == einzig relevant
Standard CGI: "C:\PERL\BIN\PERL.EXE" "D:\ClanHP\codex\load.pl" news - Launched failed; error code = 3, Das System kann den angegebenen Pfad nicht finden.
Existiert C:\PERL\BIN\PERL.EXE, existiert D:\ClanHP\codex\load.pl?
Cheatah
also D:\ClanHP\codex\load.pl existiert, aber C:\PERL\BIN\PERL.EXE nicht, ich habs auch nirgends gefunden, kann ich das irgendwo saugen??
also D:\ClanHP\codex\load.pl existiert, aber C:\PERL\BIN\PERL.EXE nicht, ich habs auch nirgends gefunden, kann ich das irgendwo saugen??
Hi,
das wird in der Tat schwierig, Perl-Scripts ohne entsprechenden Interpreter auszuführen...
Besorg Dir mal von ActiveState (http://www.activeperl.com) ActivePerl, was Du dann am besten in c:\Perl installierst. Dann brauchst am Webserver nichts konfigurieren...
Tschö...
Alex :)
Besorg Dir mal von ActiveState (http://www.activeperl.com) ActivePerl, was Du dann am besten in c:\Perl installierst. Dann brauchst am Webserver nichts konfigurieren...
Der Pfad zu Perl wird nicht am Webserver konfiguriert, sondern in der Perldatei angegeben(z.B. #!C:/perl/bin/perl -w).
Besser als nach C:\perl installieren ist C:\usr, da kann man dann #!/usr/bin/perl -w verwenden und es funktioniert sowohl lokal auf dem Rechner als auch auf dem 'richtigen' Webserver (vorrausgesetzt, der Webserver ist auch auf C:\ installiert). Die erste Zeile muß dann in load.pl natürlich noch geändert werden.
Gruß Markus
Besorg Dir mal von ActiveState (http://www.activeperl.com) ActivePerl, was Du dann am besten in c:\Perl installierst. Dann brauchst am Webserver nichts konfigurieren...
Der Pfad zu Perl wird nicht am Webserver konfiguriert, sondern in der Perldatei angegeben(z.B. #!C:/perl/bin/perl -w).
Unter Unix ja, unter Windows gelegentlich.
Bei halbwegs aktuellen Apache-Versionen für Win32 gibt es die Option "ScriptInterpreterSource registry", die standardmäßig aktiv ist. Dann holt sich der Apache den Pfad zum Interpreter anhand der Dateiendung aus der Registry, d.h. .pl => c:\perl\bin\perl.exe, .bat => c:\windows\command\command.com, .txt => c:\windows\notepad.exe, .exe => die EXE-Datei selbst, usw. (Ja, Notepad ist kein gutes CGI, aber es wird aufgerufen! Und bei NT und 2000 bleibt das Notepad unsichtbar, weil der Apache nicht mit dem Desktop interagieren darf. Da hilft nur ein Reboot.) Ist die Option aus, liest der Apache den Interpreter aus der Datei, bzw. startet EXE und COM direkt, und BAT und CMD über CMD.EXE bzw. COMMAND.COM.
Besser als nach C:\perl installieren ist C:\usr, da kann man dann #!/usr/bin/perl -w verwenden und es funktioniert sowohl lokal auf dem Rechner als auch auf dem 'richtigen' Webserver (vorrausgesetzt, der Webserver ist auch auf C:\ installiert). Die erste Zeile muß dann in load.pl natürlich noch geändert werden.
Oder: Wie schieße ich mir möglichst umständlich in den Fuß ?
Apache installieren, "ScriptInterpreterSource registry" aktiv lassen, und in den CGI-Scripten den Perl-Interpreter so angeben wie er hinterher auf dem Webserver benötigt wird, sprich #!/usr/bin/perl oder #!/usr/local/bin/perl.
Alexander
Gruß Markus
so, danke. Jetzt gibts no nen anderes kleines Problem: er zeigt jetzt nicht mehr, das er die seite nicht finden kann, sondern zeigt immer ne leere weisse seite an, obwohl die seite normalerweise was draufstehen hat
woran liegt das jetzt??
thx