Schrift
[thread]3131[/thread]

Apache(2) + mod_perl(2): Probleme mit dem Querystring

Leser: 1


<< >> 5 Einträge, 1 Seite
Gast Gast
 2005-01-29 15:29
#30978 #30978
hallo alle zusammen

folgendes problem:
ich habe ein relativ großes perl-script geschrieben ( http://www.lanadminsystem.de ) - alles läuft wunderbar wenn ich apache/apache2 ohne mod_perl starte. starte ich es mit mod_perl (tritt bei beiden versionen auf) so ist der geschwindigkeitszuwachs spürbar (wie es sein sollte) - jedoch: wenn ich einen link anklicke der mittels einer url wie z.b. Lanas.pl?AKTION=WERT&AKTION2=WERT2 weiterleitet macht er das für max. 3 links - anschließend lande ich wieder auf einer der vorhergehenden seiten (also alte querystrings) oder er ließt den querystring irgendwie fehlerhaft ein. ich benutzt CGI.pm um den string zu parsen und eine funktion aus dem eigenbau - beides geht nicht. hat jemand eine ahnung woran das liegen könnte?

folgendes habe ich in die sites-availble (apache2) bzw. httpd.conf (apache) aufgenommen (bzw angegepasst) um mod_perl zu aktivieren:

Apache2:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
SetHandler perl-script
PerlHandler ModPerl::Registry
Options +ExecCGI
# -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
</Directory>


Apache:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

#
# "/usr/lib/cgi-bin" could be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory /usr/lib/cgi-bin/>
SetHandler perl-script
PerlHandler Apache::Registry
AllowOverride All
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
Dubu
 2005-01-29 16:39
#30979 #30979
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Ich habe zwar wenig Erfahrung mit mod_perl (da kann strat sicher mehr zu sagen), aber CGI.pm macht mit grosser Sicherheit keinen Fehler beim Parsen der Parameter. Uebliches Problem bei mod_perl ist eher, dass man irgendwo faelschlicherweise davon ausgeht, dass eine Variable beim Skriptstart leer bzw. undef ist, was unter mod_perl eben nicht der Fall ist. Mehr laesst sich kaum sagen, ohne den Code zu sehen.

Nachdem du eben netterweise darauf aufmerksam gemacht hast, dass der alte Link zum mod_perl-Tutorial nicht mehr funktioniert, hier noch mal der Link zum Original: http://perl.apache.org/docs/1.0/guide/porting.html
Vielleicht hilft es ja.
GwenDragon
 2005-01-30 13:54
#30980 #30980
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Globale Variablen gehören unbedingt in einem BEGIN-Block initialisiert und in einem END-Block gelöscht.
Ansonsten bleiben sie bis zum Beenden von Apache im Speicher.

Verlasst euch nicht darauf, dass Variablen von vornherein einen definierten Wert haben, besser immr initialisieren.

Ansonsten funktioniert CGI mit mod_perl.\n\n

<!--EDIT|GwenDragon|1107087065-->
Strat
 2005-02-10 22:14
#30981 #30981
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
genau; oder globale Variablen nur readonly verwenden... dann ist man hier auch auf der sicheren seite
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
GwenDragon
 2005-06-01 12:14
#30982 #30982
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Liest du den Querystring über CGI.pm aus oder wie?
<< >> 5 Einträge, 1 Seite



View all threads created 2005-01-29 15:29.