Serverumgebung konfigurieren

papaya CMS erfordert bestimmte Einstellungen in Apache, PHP und ggf. auch MySQL, um einwandfrei laufen zu können. So muss das Rewrite-Modul in Apache aktiviert sein. PHP erfordert neben den Erweiterungen für Ihren Datenbankserver und XML noch XSLT und GD2. Anstelle von GD2 können Sie auch andere Grafikprozessoren wie ImageMagick oder Netpbm benutzen. Alle diese vier genannten Erweiterungen werden standardmäßig mit PHP 5 ausgeliefert.

[]

Dieses Handbuch geht davon aus, dass Sie bereits über einen laufenden Apacheserver mit PHP und MySQL verfügen. Nähere Angaben zur Installation und zur Konfiguration eines solchen Serververbundes können Sie den jeweiligen Dokumentationen entnehmen, die Sie unter den folgenden URLs aufrufen können:

Die Datenbank sollte mit UTF-8-Zeichensatzkodierung angelegt werden. Sie sollten auch eine entsprechende UTF-8-Kollation auswählen, damit die alphabetischen Inhalte korrekt sortiert werden.

Apache konfigurieren

Folgende Einstellungen müssen im Apache vorgenommen werden:

  • Aktivieren Sie das Modul rewrite_module.
  • papaya CMS liefert eine eigene .htaccess-Datei mit, die in das DocumentRoot-Verzeichnis abgelegt werden soll. Sie müssen daher die AllowOverride-Direktive auf All setzen, damit der Apache-Webserver die .htaccess-Dateien interpretiert.
  • Passen Sie die .htaccess-Datei an, falls papaya CMS in ein Unterverzeichnis installiert wird.

mod_rewrite aktivieren

papaya CMS benötigt das Modul rewrite_module. Dieses Modul ist in der Konfigurationsdatei jedoch standardmäßig auskommentiert. Sie müssen also die Raute vor der entsprechenden LoadModule-Direktive entfernen und den Server neu starten. Die untere Zeile aus der Konfigurationsdatei httpd.conf zeigt die entsprechende Zeile:

Beispiel 2.1. rewrite_module aktivieren

LoadModule rewrite_module modules/mod_rewrite.so

.htaccess-Dateien für DocumentRoot freigeben

Apache kann eine Reihe von Verzeichnissen für die Webfreigabe verwalten. Sie können ein Verzeichnis als DocumentRoot festlegen und weitere Verzeichnisse für serverseitige Scripte wie Perl oder PHP angeben. Über Directory-Bereiche können Sie für jedes dieser Verzeichnisse bestimmte Einstellungen vornehmen. Sie können auf diese Weise bestimmen, ob die .htaccess-Datei in diesem Verzeichnis ausgewertet werden soll oder nicht. Diese Art der Freigabe wird durch die AllowOverride-Direktive festgelegt.

Standardmäßig ist die AllowOverride-Direktive auf den Wert None eingestellt. Dadurch ignoriert Apache .htaccess-Dateien. In der unteren Abbildung wurde die Standardeinstellung auskommentiert und durch „AllowOverride All“ ersetzt:

Beispiel 2.2. Die AllowOverride-Direktive verändern

# Each directory to which Apache has access can be configured
# with respect to which services and features are allowed
# and/or disabled in that directory (and its subdirectories). 

<Directory "/pfad/zum/DocumentRoot">
    Options FollowSymLinks
#   AllowOverride None
    AllowOverride All
</Directory>

Diese Einstellung gewährleistet die Auswertung der .htaccess-Datei, die mit papaya CMS mitgeliefert wird.

[]

Sie können den Inhalt Ihrer .htaccess-Datei auch direkt in die httpd.conf-Datei einfügen. Dazu kopieren Sie per Copy & Paste die Direktiven aus der .htaccess-Datei und fügen Sie zwischen die <Directory />-Tags der httpd.conf ein. Dadurch wird es möglich, dass Sie die Voreinstellung auf „AllowOverride None“ belassen. Sie erreichen damit eine etwas sicherere Grundkonfiguration von Apache.

Eine solche Konfiguration hätte folgendes Aussehen (Aus Platzgründen wurde im Beispiel nur ein Teil der Rewrite-Direktiven dargestellt):

Beispiel 2.3. RewriteRules in die httpd.conf einfügen

<Directory "/pfad/zum/DocumentRoot">
    Options FollowSymLinks
    AllowOverride None

    RewriteEngine On
    #remove session id
    RewriteRule ^/?sid[a-z]*([a-zA-Z0-9,-]{32}|[a-zA-Z0-9,-]{40})(/.*) $2 [QSA]
    #admin pages
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
...

VirtualDocumentRoot

Als Alternative zur einfachen DocumentRoot-Konfiguration bietet Apache auch VirtualHosts an. Mit diesen virtuellen Hosts können Sie verschiedene Webprojekte unter anderen Domainnamen auf ein und dem selben Server betreiben. Sie können für jeden virtuellen Host ein eigenes DocumentRoot definieren. In jeder dieser <VirtualHost>-Elemente können Sie <Directory>-Elemente einfügen, die eigene AllowOverride-Direktiven und Rewrite-Regeln enthalten können.

Wenn Sie viele virtuelle Hosts anlegen möchten, die die selbe Konfiguration aufweisen, können Sie anstelle der DocumentRoot-Direktive auch VirtualDocumentRoot benutzen. Die VirtualDocumentRoot-Direktive bildet Verzeichnisnamen auf URLs ab. Dabei legen Sie genau einen <VirtualHost>-Bereich an, der eine VirtualDocumentRoot-Direktive enthält:

Beispiel 2.4. VirtualDocumentRoot definieren

<VirtualHost 192.168.1.80:80>
    VirtualDocumentRoot /usr/local/apache/vhosts/%0
...

Wenn das Verzeichnis /usr/local/apache/vhosts/ mehrere Unterverzeichnisse im Format /www.virtuelledomaene.tld/ enthält, wird Apache alle Dokumente für diese Domäne in diesem Verzeichnis suchen.

In einer solchen Konfiguration können Sie ebenfalls wie oben beschrieben die RewriteRules aus der .htaccess-Datei einfügen und brauchen die AllowOverride-Direktive nicht auf „On“ zu stellen.

[]

Wenn Sie die VirtualDocumentRoot-Direktive verwenden, kann es ggf. zu Problemen mit der PHP-Variablen $SERVER['DOCUMENT_ROOT'] kommen. Durch einen Bug in Apache im Zusammenspiel mit VirtualDocumentRoot erhält diese Variable gelegentlich falsche Werte, wodurch die Navigation Ihres papaya-Projektes falsche Navigationspfade generieren kann.

Sie lösen dieses Problem, indem Sie in der conf.inc.php der Variablen manuell den richtigen Domainnamen zuweisen:

Beispiel 2.5. DocumentRoot-Verzeichnis manuell zuweisen

$SERVER['DOCUMENT_ROOT'] = /pfad/zum/DocumentRoot

Suche

Im Handbuch suchen nach:

Fehler gefunden?

Teilen Sie uns mit, wenn Sie Fehler gefunden haben. Auf diese Weise helfen Sie uns, die Qualität der Dokumentation zu verbessern: Redaktion