![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 04.08.2001
Alter: 52
Beiträge: 211
|
![]() Hallo!
Möchte zu Beginn als "Neuer" alle recht herzlich begrüßen! Nun zu meinem Problem: Habe mir "PHPTriad" (enthält Apache, mySql, PHP und Perl) runtergeladen. Der Webserver Apache, mySql und PHP funktionieren super. Nur mit Perl habe ich Schwierigkeiten, es zum Laufen zu bringen. Welche Einstellungen sind in der Konfigurationsdatei "httpd.conf" durchzuführen, damit Perl-Scripts auf dem Apache-Server auch vom integrierten Perl-Interpreter ausgeführt werden. Welche Änderungen sind an folgenden schon vorhandenen Einstellungen in der Konfigurationsdatei "httpd.conf" vorzunehmen: ------------------------------------------------------------------ #!c:/program files/perl/perl ScriptAlias /cgi-bin/ "/apache/cgi-bin/" <Directory "/apache/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi AddHandler cgi-script .pl ------------------------------------------------------------------ Danke schon im voraus MrBean |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 05.01.2000
Beiträge: 3.812
|
![]() Sollte eigentlich alles stimmen.
Was kommt für eine Fehlermeldung? Der Pfad zu Perl (c:/program files/perl/perl) ist vielleicht nicht gut. Das Leerzeichen zwischen "programm" und "files" kann Probleme machen. Sloter |
![]() |
![]() |
![]() |
#3 | ||
verXENt
![]() |
![]() Zitat:
Zitat:
Code:
# BEGIN MOD_PERL CONFIG LoadModule perl_module modules/ApacheModulePerl ScriptAlias /perl-bin/ "perl-bin/" PerlSendHeader On <Location /perl-bin> SetHandler perl-script PerlHandler Apache::Registry Options ExecCGI </Location> # END MOD_PERL CONFIG Mit diesen Script kann man austesten ob mod_perl läuft: Code:
#!perl -w use strict; print "Content-type: text/html\n\n"; print "Mod_perl test script \n"; if ($ENV{'MOD_PERL'}) { print "Mod_perl is installed on this server: $ENV{'MOD_PERL'} \n"; } else { print "Mod_perl is not installed on this server \n"; } print "Environment variables \n"; foreach my $key (sort keys %ENV) { print "\"$key\" = \"$ENV{$key}\" \n"; } |
||
![]() |
![]() |
![]() |
#4 |
Veteran
![]() Registriert seit: 04.08.2001
Alter: 52
Beiträge: 211
|
![]() Ich habe vergessen, daß ich den Apache-Server auf meinem PC (Windows 95) zu Testzwecken als "localhost" betreibe.
In der Apache-Konfigurationsdatei "httpd.conf" habe ich den (vorgegebenen) Pfad zum Perl-Interpreter geändert auf: #!c:/apache/Perl/nsperl Wenn ich unter der MS-DOS-Eingabeaufforderung in das Verzeichnis "c:/apache/Perl" gehe und dort "nsperl c:/apache/cgi-bin/comments.pl" aufrufe, wird das entsprechende Perl-Skript ausgeführt. Rufe ich dieses Perl-Skript (c:/apache/cgi-bin/comments.pl) über meine HTML-Datei "feedback.html" (c:/apache/htdocs/feedback.html) auf, indem ich nach Starten des Apache-Servers in meinem Browser "http://localhost/feedback.html" eingebe, erscheint folgende Fehlermeldung: 500 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, you@your.address and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. -------------------------------------------------------------------- Apache/1.3.14 Server at localhost Port 80 In der Apache-Datei "error.log" erhalte ich dazu folgenden Eintrag: [Sun Aug 05 12:04:03 2001] [error] [client 127.0.0.1] couldn't spawn child process: /apache/cgi-bin/comments.pl Die beiden Dateien "feedback.html" und "comments.pl" stammen aus dem Buch "SELFHTML: Version 7.0 vom 27.04.1998, Autor: Stefan Münz", und zwar aus dem Verzeichnis "CGI/Perl -> CGI und HTML -> Beispiel für die Wechselwirkung zwischen HTML und CGI". MrBean |
![]() |
![]() |
![]() |
#5 |
Inventar
![]() Registriert seit: 05.01.2000
Beiträge: 3.812
|
![]() Ändere einmal den Eintrag ScriptAlias
ScriptAlias /cgi-bin/ "/apache/cgi-bin/" Auf ScriptAlias /cgi-bin/ "/apache/" Sloter |
![]() |
![]() |
![]() |
#6 |
Veteran
![]() Registriert seit: 04.08.2001
Alter: 52
Beiträge: 211
|
![]() Nachdem ich mir eure guten Vorschläge durchgelesen habe und mehrere Änderungen an der Konfigurationsdatei und den Skripts durchgeführt habe, bin ich auf die Lösung meines Problems gekommen.
Philipp hat geschrieben "Schon einmal probiert am Anfang jedes Perl Scripts das #!/usr/bin/perl durch #!perl zu ersetzten. Das funktioniert normalerweise bei NuSphere." Ich habe immer gedacht, diese erste Zeile in einem Perl-Skript ist nur unter Unix von Bedeutung und z.B. unter Windows bedeutungslos, sprich es kann irgendetwas stehen. Ist wahrscheinlich darauf zurückzuführen, daß ich vor Apache den Web-Server von Omnicron (OmniHttp) zusammen mit CGI/Perl betrieben habe. Bei OmniHttp gibt man die Lage des Perl-Interpreters direkt über die WWW-Server-Software ein; was zu Beginn eines Perl-Skripts nach dem "#!" steht, ist egal. Als ich schließlich zu Beginn meines Perl-Skripts die genaue Lage meines Perl-Interpreters mit "#!c:/apache/Perl/nsperl" angegeben habe, wurde das Perl-Skript ausgeführt und ich hatte ein "Jawohl"-, "Juhu"- oder ähnliches Gefühl. Also nochmal vielen Dank an Sloter und Philipp MrBean P.S. Hoffe, auch mal helfen zu können. |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|