gymel
>> Populo
>> Kompatibilität
$Id: compat,v 1.9 2002/04/27 16:49:59 Thomas Exp $
Perl-Kompatibilitaet:
=====================
Populo ist mit folgenden Perl-Versionen getestet:
NT 4.0:
- ActiveWare Build 314ff (ist 5.003_07)
[Achtung: Perl fuer ISAPI wird vermutlich nicht funktionieren]
- ActivePerl Build 618ff (ist 5.006_01 und folgende)
Ebenfalls mit PerlIS
Win 95:
- ActiveWare Build 314ff (ist 5.003_07)
- Standard Port 5.004_02
- ActivePerl Build 501ff (ist 5.005_01 und folgende)
Perl 4 und Perl 5.001 funktionieren garantiert nicht!
Perl 5.002 auf eigenes Risiko (require's aufhacken).
Serverliste:
============
Populo ist mit folgenden HTTP-Servern getestet:
Win95:
------
- Omnicron: OmniHttpd (diverse Versionen 1.x, 2.x)
- Microsoft: MS Personal Webserver W95
- iMatix: Xitami v2.2d3, v2.5b5
- Apache Group: Apache 1.3.x (ohne mod_perl)
- Sambar: 4.1 Production
- O'Reilly: WebSite 1.1
Win NT 4.0:
-----------
- Microsoft: MS Peer Webservices NT (?)
MS IIS (3.0, 4.0)
- Apache Group: Apache 1.3.x, 2.0.x (ohne mod_perl)
- O'Reilly: WebSite 1.1
Sun Solaris:
------------
- Apache Group: Apache 1.2.x (ohne mod_perl)
Apache 1.3.x (ohne mod_perl)
Linux:
------
- Apache Group: Apache 1.3.x (ohne mod_perl)
IRIX:
------
- Netscape: Enterprise/2.01
Konfigurations-Besonderheiten (unter U**X gibt es natuerlich keine
Fallen) betreffend das Zugaenglichmachen des Perl-Interpreters und
Aufrufpfade von Scripten:
* Apache beruecksichtigt die erste Zeile der Scripten, um den Ort des
Perl-Interpreters zu bestimmen. Dieser ist als
#!/usr/local/bin/perl -w
eingestellt, auf PCs wird dies normalerweise nicht stimmen. Auch auf
PCs bitte den Pfad mit "/" angeben (oder mit "\\", aber nicht mit
"\"!), also etwa als
#!C:/perl/bin/perl -w
* In neueren Apache-Versionen koennen Sie unter Win32 allerdings auch
in einer Location-Direktive angeben:
<Location /cgi-bin>
ScriptInterpreterSource registry
</Location>
Dann brauchen Sie in den Perl-Skripten, deren Name auf ".pl" endet,
den Pfad in der #!-Zeile nicht anzupassen.
* Apache unter Linux ist oft vorinstalliert mit mod_perl-Unterstuetzung
(genauer: Script registry) fuer /cgi-bin. Damit funktioniert populo
leider nicht. Bequemste Abhilfe in diesem Fall ist, populo nicht
nach /cgi-bin sondern in ein anderes (mit der Direktive ScriptAlias
geeignet zu konfigurierendes) CGI-Verzeichnis zu installieren
(wird sowieso empfohlen).
* Aeltere Microsoft-Server benoetigen in der Registry einen Eintrag,
der die Aufrufweise des Perl-Interpreters festlegt. Dieser ist
(Online-Dokumentation lesen, Kapitel 10?)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3Svc\Parameters\ScriptMap
Dort ist ein Wert ".pl" hinzuzufuegen mit Eigenschaft
C:\perl\bin\perl.exe %s %s
(Wenn Perl nach c:\perl installiert ist)
Online-Dokumentation ist fuer Peer Web Services natuerlich nicht
vorhanden, der beschriebene Weg funktioniert aber.
* Bei den neueren Microsoft IIS ist das Startverzeichnis dasjenige
uebergeordnete Verzeichis, zu dem ein explizites Mapping besteht.
Wenn Sie also populo in einem Unterverzeichnis (etwa von /cgi-bin)
installieren, muessen Sie in der Management-Konsole das entsprechende
Mapping virtuelles Unterverzeichis <-> reales Unterverzeichnis
pleonastischerweise explizit einstellen (es gibt Ihnen allerdings
die Gelegenheit, die Rechtevergabe restriktiver zu handhaben und
das virtuelle Unterverzeichnis vielleicht auf einen physischen Ort
umzulenken, der praktischer fuer Sie ist).
* Sambar: Dem mitgelieferten Perl von fehlen jegliche Module, das
reicht leider nicht!
* Xitami: Bei aelteren Versionen ist die Voreinstellung (unter
"Normal Configuration / CGI") fuer "Working Directory" leer.
Hier ist "-" einzutragen, damit der Server die Scripten aus
dem Verzeichnis startet, in dem sie liegen.
* Neuere Versionen von Xitami beruecksichtigen die erste Zeile der
Scripten, um den Ort des Perl-Interpreters zu bestimmen. Dieser ist als
#!/usr/local/bin/perl -w
eingestellt, auf PCs wird dies normalerweise nicht stimmen. Auch auf
PCs bitte den Pfad mit "/" angeben (oder mit "\\", aber nicht mit
"\"!), also etwa als
#!C:/perl/bin/perl -w
Alternativ kann in der Konfiguration von Xitami (Bereich "Filters")
ein Mapping von ".pl" zum Pfad des Perl-Interpreters angelegt werden.
* WebSite 1.1: Pathologisch. Es gibt eine zentrale Einstellung
(Server Root) fuer das Verzeichnis, aus dem alle CGI's aufgerufen
werden, dieser Pfad ist im Environment aber nicht vorhanden (huelfe
auch nichts). SCRIPT_FILENAME ist wie bei den meisten Servern nicht
vorhanden. Alle aufgerufenen Populo-Frontends muessen also selber
fuer das chdir sorgen, am besten mit folgender Konstruktion
direkt am Anfang des Scripts:
BEGIN { ($0 =~ m=^(.*)[/\\][^/\\]+=) && chdir $1 };
(Vom Pfad des Scripts wird der Scriptname entfernt und ergibt ein
Verzeichnis, in dieses wird gewechselt)