Installation unter Apache 1.3.20
Dennis Dlugosch
- perl
0 Thomas J.S.0 Klaus Mock0 ich0 Ed X0 Klaus Mock
Hi,
als neuling wollte ich mir jetzt auch mal perl unter apache installieren.
also bei mir läuft der apache schon einwandfrei, aber perl eben nicht. ich hab mir ActivePerl gezogen und unter C:...\Apache\cgi-bin\perl installiert. Mein eigentliches cgi-bin Verzeichnis liegt jetzt aber auf einer anderen Partition, und zwar auf D:\htdocs\cgi-bin.
Doch wenn ich jetzt da eine .pl Datei hineinschieb, dann kommt immer Access Frobidden.
Bei Apache hab ich noch in der htppd.conf folgende Angaben gemacht:
ScriptAlias /cgi-bin/ "D:/htdocs/cgi-bin"
<Directory "D:/htdocs/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Was mache ich falsch ? Am besten wäre es wenn ihr mir vielleicht sagen könntet wie ich auch noch den Apache dazu bringe, dass er Dateien mit der Endung .cgi auch mit Perl in Verbindung bringen würde...
Hoffentlich Danke und mfg
hallo,
Bei Apache hab ich noch in der htppd.conf folgende Angaben gemacht:
ScriptAlias /cgi-bin/ "D:/htdocs/cgi-bin"
<Directory "D:/htdocs/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
hier mit / am ende
ScriptAlias /cgi-bin/ "D:/htdocs/cgi-bin/"
es würde reichen:
<Directory "D:/htdocs/cgi-bin">
AllowOverride None
Options None
</Directory>
Was mache ich falsch ? Am besten wäre es wenn ihr mir vielleicht sagen könntet wie ich auch noch den Apache dazu bringe, dass er Dateien mit der Endung .cgi auch mit Perl in Verbindung bringen würde...
in der httpd.conf steh eine zeile:
#AddHandler cgi-script .cgi
entferne den kommentar so:
AddHandler cgi-script .cgi
hoffentlich grüße
thomas
Hallo,
ich hab mir ActivePerl gezogen und unter C:...\Apache\cgi-bin\perl installiert.
Perl hat ja an und für sich recht wenig mit Apache zu tun. Deshalb kann die Installation von Perl vollkommen unabhängig von der Apache-Installation sein.
Wichtig ist nur, zu verstehen, _wie_ ein Perlscript vom Webserver gestartet wird.
Da ist zum einen die Shebang-Zeile (die erste Zeile) im Script :
Je nach Installation von Perl, sollte hier der vollständige Pfad des Perlinterpreters stehen (perl.exe unter Windows).
In Deinem Fall wahrscheinlich
#!C:...\Apache\cgi-bin\perl\bin\perl.exe -w
(Das -w ist zwar optional, sollte jedoch immer dabei sein, nähreres dazu findest Du in der PErldokumentation 'perlrun')
Wenn der Apache-Server versucht, ein Script auszuführen, wertet er diese Zeile aus und versucht das hier angegebene Programm zu starten (den Perlinterpreter). Steht aber der falsche Pfad drin, dann gehts nicht und Du bekommst eine Fehlermeldung vom Server.
Dabei ist es unerheblich, ob und, wenn ja, welche Endung das Script hat.
Unter Win32 kannst Du auch in der Apache-Konfiguration
ScriptInterpreterSource registry
angeben. In der Ausgangskonfiguration (httpd.conf) ist dieser Eintrag zwar vorhanden, jedoch auskommentiert. Durch ein Entfernen des '#' am Anfang der Zeile qwird diese option scharf gemacht.
Hast Du das gemacht, dann versucht der Webserver beim starten des Scripts aufgrund der Endung das dazu verknüpfte Programm zu starten (Sie Windows Dateitypen).
Ich hoffe, daß das als Ergänzung zu dem von Thomas gesagtem weiterhilft.
Grüße
Klaus
Hallo
#!C:...\Apache\cgi-bin\perl\bin\perl.exe -w
Würg Brech! Bei Apache wird auch unter Windows "/" anstelle von "" verwendet.
Steht sogar in der Konfigurationsdatei...
...
...
Ansonsten ist das aber sicherlich nicht so falsch.
Unter Windows kann man aber auch ein #!perl im Script platzieren. Natürlich nur dann, wenn der Pfad zum Perl- Interpreter in der PATH Variablen (normalerweise in der Autoexec.bat enthalten.) vorkommt.
So hab ich das bei mir stehen und es geht ganz gut...
Formmailer und andere Scripte, die auf weitere Externe Programme zugreifen (z.B. sendmail als Mailprogramm) laufen damit dann natürlich nicht. Hier müßte man erst noch die Entsprechenden Programme unter Windows finden und installieren. Falls es das entsprechende Programm dafür gibt, denn nicht alles für Linux gibts auch für Windows...
Aber unabhängig davon: selbst wenn dies falsch eingestellt wäre, es würde sicher nicht zu einer Forbidden Meldung kommen...
Also:
ScriptAlias /cgi-bin/ "D:/htdocs/cgi-bin"
<Directory "D:/htdocs/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
sieht schon gar nicht so verkehrt aus. Wäre aber nicht schlecht, wenn es erlaubt wäre CGI-Scripte darin ausführen zu dürfen...
Also mal anstelle von "Options None" mal ein "Options ExecCGI" versuchen. Wenn es dann immer noch nicht geht, nochmal alles andere, wo was con CGI-Scripts in der Konfigurationsdatei steht, überprüfen...
Viel Erfolg damit...
Hi,
Formmailer und andere Scripte, die auf weitere Externe Programme zugreifen (z.B. sendmail als Mailprogramm) laufen damit dann natürlich nicht. Hier müßte man erst noch die Entsprechenden Programme unter Windows finden und installieren. Falls es das entsprechende Programm dafür gibt, denn nicht alles für Linux gibts auch für Windows...
wenn ich formmailer unter windows teste, öffne ich keine Pipe sondern einfach nur eine Datei, die *.eml benannt wird. Die checke ich, indem ich sie mit Outlook öffne. Solange man sich einigermaßen an die Spezifikationen hält, sollte es dann mit sendmail auch kein Problem geben.
Bye Ed X
Hallo,
#!C:...\Apache\cgi-bin\perl\bin\perl.exe -w
Würg Brech! Bei Apache wird auch unter Windows "/" anstelle von "" verwendet.
Das verd... cut&paste. Natürlich, Du hast vollkommen recht.
Unter Windows kann man aber auch ein #!perl im Script platzieren.
Wiedr richtig.
Natürlich nur dann, wenn der Pfad zum Perl- Interpreter in der PATH Variablen (normalerweise in der Autoexec.bat enthalten.) vorkommt.
Außer NT und Win2K, da wirds dann beispielsweise in der Systemsteuerung->System->Umgebungsvariablen oder so eingestellt. Dabei ist es wichtig., die Systemvariable zu modifizieren, da der Webserver normalerweise nicht mit dem Konto des angemeldeten Users läuft.
Formmailer und andere Scripte, die auf weitere Externe Programme zugreifen (z.B. sendmail als Mailprogramm) laufen damit dann natürlich nicht. Hier müßte man erst noch die Entsprechenden Programme unter Windows finden und installieren. Falls es das entsprechende Programm dafür gibt, denn nicht alles für Linux gibts auch für Windows...
Anstelle sendmail würde ich sowieso eher die entsprechenden Perl-Module einsetzen. da habe ich weit weniger Streß beim Plattformwechsel.
Grüße
Klaus