Thread Perl mit XAMPP (und Mason) nutzen (3 answers)
Opened by tsy at 2008-04-03 17:12

tsy
 2008-04-03 17:12
#107816 #107816
User since
2008-03-17
54 Artikel
BenutzerIn
[default_avatar]
Hallo!
Mein Ziel ist es, das HTML::Mason-Modul mit XAMPP und mod_perl unter Win XP zu benutzen.
Ich bin dabei folgendermaßen vorgegangen:
- Installieren von Active Perl 5.8.8
- Nachinstallieren verschiedener Module, unter anderem auch Mason, welche ich für mein Projekt benötige
Nun soll für das Projekt eine Weboberfläche geschaffen werden. Ich habe daher XAMPP installiert und bin den Instruktionen bei
http://www.ricocheting.com/server/cgi.html
gefolgt bis auf die Zeilen
Code: (dl )
If you will be creating your own cgi-bin, you will want to comment out: ScriptAlias /cgi-bin/ "E:/Apache2/cgi-bin/" so it becomes #ScriptAlias /cgi-bin/ "E:/Apache2/cgi-bin/"

Ich habe dies so interpretiert, dass man im Web-Projekt-Verzeichnis ein eigenes Verzeichnis anlegen will, welches man cgi-bin nennt. Da ich das nicht vor habe habe ich diesen Teil ignoriert.

In meiner Apache-Konfiguration wird am Ende noch die Datei perl.conf importiert. In jener habe ich die Zeilen, welche zwischen den beiden Kommentarzeilen stehen eingebunden (waren vorher auskommentiert), da ich Win XP Professional benutze.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
LoadFile "C:/xampp/perl/bin/perl58.dll"
LoadModule perl_module modules/mod_perl.so

PerlRequire "C:/xampp/apache/conf/extra/startup.pl"

#### Only for NT + w2k + XP Professional ####
<Files *.pl>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
</Files>

<Files ~ (\.asp)>
SetHandler perl-script
PerlHandler Apache::ASP
PerlSetVar Global .
PerlSetVar StateDir "C:/xampp/tmp"
</Files>
###########################################

Alias /perl "C:/xampp/htdocs/modperl/"
<Directory "C:/xampp/htdocs/modperl/">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
</Directory>

<Files *.pl>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
</Files>

PerlModule Apache::ASP
Alias /asp "C:/xampp/htdocs/modperlasp/"
<Directory "C:/xampp/htdocs/modperlasp/">
SetHandler perl-script
PerlResponseHandler Apache::ASP
PerlSetVar Global .
PerlSetVar StateDir "C:/xampp/tmp"
</Directory>


Ich habe den Pfad für Perl auf C:\Perl\bin\perl.exe umgebogen, da ich ja meine Active-Perl-Installation nutzen möchte. Die meisten anderen Einstellungen in der Apache-Config musste ich nicht verändern.
Allerdings haben mich einige Dinge verwirrt. In meiner httpd.conf steht:
Code: (dl )
1
2
3
    # (You will also need to add "ExecCGI" to the "Options" directive.)
#
AddHandler cgi-script .cgi .pl

Also: Wenn ich in jedem Verzeichnis cgi-Skripte ausführen lassen möchte, dann auskommentieren. Das habe ich gemacht; mein Projekt soll direkt unter [...]xampp/htdocs/Projektname liegen.
im der referenzierten Tutorial steht wiederum
Code: (dl )
If you if you uncommented (removed the # symbol) the line AddHandler cgi-script .cgi in step #4, then create a file in your document_root called hello.cgi and put these three lines in it 

document-Root ist doch eben genau der Ort, den ich oben angegeben habe - aber "uncomment" bedeutet _nicht_ auskommentieren - also genau das Gegenteil wie oben (?).

Aber nun zum Problem an sich:
Ich Will erst mal nur ein simples Perl-skript ausführen (unter [...]xampp/htdocs/projektverzeichnis ). im Broweser versuche ich dies mit http://localhost/projektverzeichnis aufzurufen. Das Skript heißt index.pl und enthält den Code
Code: (dl )
1
2
3
#!C:\Perl\bin\perl.exe -w
use CGI;
print "<html><body>Hello World</body></html>";

Wenn ich es aufrufe bekomme ich eine weiße Seite im Browser zu Gesicht.
Was mache ich denn verkehrt?

Grüße,

tsy

View full thread Perl mit XAMPP (und Mason) nutzen