Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11571[/thread]

Perl mit XAMPP (und Mason) nutzen

Leser: 1


<< >> 4 Einträge, 1 Seite
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
tsy
 2008-04-04 14:44
#107863 #107863
User since
2008-03-17
54 Artikel
BenutzerIn
[default_avatar]
Hmmm. Ich bin mir zwar nicht ganz sicher, was ich nun geändert habe, aber Perl funktioniert jetzt. Allerdings nicht wie in der httpd.conf angegeben die zuerst installierte Active Perl Version, sondern die bei XAMPP mitgelieferte.
Meine Frage wäre nun: Ist es irgendwie möglich, dass ich Apache beibringe die Module der bereits installierten Perl-Version zu benutzen?

Viele Grüße,

tsy
GwenDragon
 2008-04-04 15:08
#107866 #107866
User since
2005-01-17
14538 Artikel
Admin1
[Homepage]
user image
Die meisten benutzen hier separate Installationen und kein XAMPP.
Tut mir leid.

Wenn du ein XAMPP-Problem hast, musst du dich wohl eher an http://www.apachefriends.org/de/index.html wenden.

Quote
Ist es irgendwie möglich, dass ich Apache beibringe die Module der bereits installierten Perl-Version zu benutzen?

Ich nehme an, dass XAMPP- und ActiveState-Bibliotheken unterschiedlich kompiliert sind. Das wird dann wohl kaum gehen.

Installier dir lieber Apache, PHP, MySQL und hole dir dann per ppm mod_perl.
http://theoryx5.uwinnipeg.ca/modperl/docs/2.0/os/w...
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

tsy
 2008-04-08 10:54
#108060 #108060
User since
2008-03-17
54 Artikel
BenutzerIn
[default_avatar]
Hallo!
Es ging ganz einfach. :-)
Wen es interessiert: Den ppm aus dem Apache-Verzeichnis konnte ich zwar nicht per Konsole aufrufen - es wurde immer der ppm der schon installierten Distro gestartet, aber es geht ganz einfach, wenn man die ppm.bat-Datei aus dem xampp-Perl-Verzeichnis aufruft. Die startet den grafischen ppm; er übernimmt sogar die Konfig des bereits installierten (Repositories, etc.) und installiert dann in das xampp-Perl-Verzeichnis.

Danke für die Hilfe!

Gruß, tsy
<< >> 4 Einträge, 1 Seite



View all threads created 2008-04-03 17:12.