gymel  >> Populo  >> Kompatibilität

$Id: compat.html 344 2011-09-08 12:42:02Z ThB $

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)