PHP Handbuch
Zurück |  | Weiter

# Kapitel 4. Installation auf Unix-Systemen

Dieser Abschnitt leitet Sie durch die generelle Konfiguration und Installation von PHP auf Unix-Systemen. Bitte lesen Sie zuerst alle Abschnitte die speziell für Ihre Platform oder Webserver zugeschnitten sind, bevor Sie mit dem Installationsprozess beginnen.

Wie dieses Handbuch im Abschnitt Generelle Überlegungen darlegt, behandeln wir hauptsächlich die web-zentrierten Einrichtungen von PHP, obwohl wir die Installation von PHP für die Kommandozeilennutzung ebenso beschreiben.

Es gibt veschiedene Wege, PHP auf Unix-Platformen zu installieren: Entweder mit einem Kompilierungs- und Konfigurierungsprozess oder durch verschiedene Methoden von vorgefertigten Paketen. Diese Dokumentation richtet Ihr Augenmerk hauptsächlich auf den Prozess des selber Kompilierens und Konfigurierens. Viele unix-artige Systeme haben eine Art von Paketinstallationssystem, welches beim aufsetzen einer Standardkonfiguration helfen können, aber wenn man eine davon Abweichende Menge von features benötigt (etwa sichere Server oder andere Datenbanktreiber) könnten Sie PHP und/oder Ihren Webserver selbst bauen müssen. Falls Ihnen das Bauen und Kompilieren von Software nicht geläufig ist könnte es lohnenswert sein zu prüfen, ob bereits jemand ein PHP-Paket mit den von Ihnen benötigten Features gebaut hat.

Folgende Fähigkeiten und Software benötigen Sie für die Kompilierung:

- Grundlegende Unix-Fertigkeiten (die Fähigkeit, "make" und einen C- Kompiler zu bedienen)

- Ein ANSI-C-Kompiler

- flex: Version 2.5.4

- bison: Version 1.28 (bevorzugt), 1.35, or 1.75

- Ein Webserver

- Modulspezifische Komponenten (wie GD, PDF Bibliotheken usw.)

Der anfängliche PHP Setup- und Konfigurationsprozess wird durch die Verwendung von Kommandozeilenoptionenn des configure -Skriptes gesteuert. Sie sollten eine Liste von allen verfügbaren Optionen zusammen mit einer kurzen Erläuterung durch den Aufruf von ./configure --help erhalten. Dieses Handbuch dokumentiert die verschiedenen Optionen einzeln. Sie finden die grundlegenden Optionen im Anhang, während die verschiedenen extension-spezifischen Optionen auf den Referenzseiten der Erweiterungen beschrieben sind.

Sobald PHP konfiguriert ist, sind Sie bereit, die Module und/oder die ausführbaren Dateien zu bauen. Der Befehl make sollte sich darum kümmern. Falls dies fehlschlägt und Sie nicht herausfinden können wieso werfen Sie einen Blick in den Abschnitt Probleme.

# Apache 1.3.x auf Unix-Systemen

Dieser Abschnitt beinhaltet Hinweise und Tipps die sich auf die Installation von PHP speziell für Apache auf Unix-Plattformen beziehen. Wir haben Anweisungen und Hinweise für Apache 2 auf einer eigenen Seite.

Sie können Anweisungen, die Sie zum unten in Zeile 10 abgebildeten configure Aufruf hinzufügen können, auswählen aus der Liste von grundlegenden Configure-Optionen und aus den für Erweiterungen spezifischen Optionen, die auf den jeweiligen Handbuchseiten beschrieben sind. Versionsnummern wurden hier ausgelassen, um sicherzustellen, dass die Anweisungen nicht inkorrekt sind. Sie müssen die Zeichenkette 'xxx' hier mit den zu Ihren Dateien passenden Werten ersetzen.

Beispiel 4-1. Installationsanweisungen (Apache Shared Module Version) für PHP
    1.  gunzip apache_xxx.tar.gz
    2.  tar -xvf apache_xxx.tar
    3.  gunzip php-xxx.tar.gz
    4.  tar -xvf php-xxx.tar
    5.  cd apache_xxx
    6.  ./configure --prefix=/www --enable-module=so
    7.  make
    8.  make install
    9.  cd ../php-xxx

    10. Konfigurieren Sie jetzt Ihr PHP. Dies ist die Stelle, an der Sie
        Ihr PHP mit verschiedenen Optionen, z.B. welche Erweiterungen aktiviert
        sein werden, anpassen können. Rufen Sie ./configure --help für eine Liste
        von verfügbaren Optionen auf. In unseren beispiel werden wir eine einfache
        Konfiguration mit Unterstützung für Apache 1 und MySQL vornehmen. Ihr
        Pfad zu Apxs könnte von unserem Beispiel abweichen.

          ./configure --with-mysql --with-apxs=/www/bin/apxs

    11. make
    12. make install

        Falls Sie sich entscheiden, die Werte Ihrer Konfiguration nach der
        Installation zu ändern, müssen Sie nur die letzten drei Schritte
        wiederholen. Sie müssen nur Apache neu starten, damit das neue Modul
        aktiv wird. Eine erneute Kompilation von Apache ist nicht erforderlich.

        Beachten Sie, dass - wenn nicht anders erwähnt - 'make install' ebenfalls
        PEAR, verschiedene PHP Tools wie phpize, den PHP CLI und mehr installieren
        wird.

    13. Ihre php.ini Datei einrichten:

          cp php.ini-dist /usr/local/lib/php.ini

        Sie können Ihre .ini-Datei bearbeiten, um verschiedene Einstellungen
        vorzunehmen. Wenn Sie es bevorzugen, Ihre php.ini-Datei an anderer
        Stelle zu haben, verwenden Sie --with-config-file-path=/irgendein/pfad
        in Schritt 10.

        Wenn Sie stattdessen php.ini-recommended auswählen stellen Sie sicher,
        dass Sie die enthaltenen Änderungen lesen, da dieses sich auf das Verhalten
        von PHP auswirken.

    14. Ändern Sie Ihre httpd.conf-Datei, um das PHP Modul zu laden. Der Pfad auf
        der rechten Seite des LoadModule Befehls muss zum Pfad des PHP Moduls auf
        Ihrem System zeigen. Das 'make install' von oben könnte dies für Sie
        bereits hinzugefügt haben, aber prüfen Sie dies nach.

        Für PHP 4:

          LoadModule php4_module libexec/libphp4.so

        Für PHP 5:

          LoadModule php5_module libexec/libphp5.so

    15. Fügen Sie dies im AddModule-Abschnitt Ihrer httpd.conf, irgendwo unterhalb
        von ClearModule List, hinzu:

        Für PHP 4:

          AddModule mod_php4.c

        Für PHP 5:

          AddModule mod_php5.c

    16. Sagen Sie Ihrem Apache, bestimmte Dateiendungen als PHP zu parsen. Zum
        Beispiel lassen wir die .php-Dateiendung als PHP behandeln. Sie können
        jede Erweiterung als PHP parsen lassen, indem Sie einfach weitere
        Endungen hinzufügen, jede durch ein Leerzeichen getrennt. Wir fügen
        .phtml hinzu, um dies vorzuführen.

          AddType application/x-httpd-php .php .phtml

        Es ist weiterhin üblich, die .phps-Dateiendung zu konfigurieren, damit
        diese farblich hervorgehobenen Quellcode anzeigt. Dies kann wie folgt
        eingerichtet werden:

          AddType application/x-httpd-php-source .phps

    17. Verwenden Sie Ihre normale Prozedur, um den Apache zu starten. (Sie müssen
        den Server anhalten und neu starten, nicht nur ein erneutes laden des
        Servers mittels eines HUP- oder USR1-Signals veranlassen.)

Alternativ, um PHP als statisches Objekt zu installieren:

Beispiel 4-2. Installationsanweisungen (Statische Modulinstallation für Apache) für PHP
    1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
    2.  cd apache_1.3.x
    3.  ./configure
    4.  cd ..

    5.  gunzip -c php-5.x.y.tar.gz | tar xf -
    6.  cd php-5.x.y
    7.  ./configure --with-mysql --with-apache=../apache_1.3.x
    8.  make
    9.  make install

    10. cd ../apache_1.3.x

    11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
        (Die obige Zeile ist korrekt! Ja, wir wissen, dass libphp5.a zu diesem
        Zeitpunkt nicht existiert. Das soll sie auch noch nicht. Sie wird
        angelegt werden.)

    12. make
        (Sie sollten jetzt eine ausführbare Datei httpd haben, welche Sie in Ihr
        Apache-Binärverezichnis kopieren können. Wenn dies Ihre Erstinstallation
        ist, müssen Sie ebenfalls "make install" aufrufen)

    13. cd ../php-5.x.y
    14. cp php.ini-dist /usr/local/lib/php.ini

    15. Sie können /usr/local/lib/php.ini bearbeiten, um PHP Einstellungen zu
        ändern. Bearbeiten Sie Ihre httpd.conf oder srm.conf-Datei und fügen Sie
        folgendes hinzu:

        AddType application/x-httpd-php .php

> Anmerkung: Ersetzen Sie `php-5` durch `php-4` und `php5` durch `php4` in PHP4.

Abhängig von Ihrer Apacheinstallation und Unixvariante könnte es viele verschiedene Methoden geben, um den Server anzuhalten und erneut zu starten. Unten sind einige typische Zeilen zum Neustart des Servers, für verschiedene Apache/Unix-Installationen. Sie sollten `/path/to` mit dem Pfad dieser Anwendungen auf Ihrem System ersetzen.

Beispiel 4-3. Beispielbefehle, um Apache neu zu starten
    1. Verschiedene Linux- und SysV-Varianten:
    /etc/rc.d/init.d/httpd restart

    2. Verwendung der apachectl Skripte:
    /path/to/apachectl stop
    /path/to/apachectl start

    3. httpdctl und httpsdctl (mit OpenSSL), ähnlich wie apachectl:
    /path/to/httpsdctl stop
    /path/to/httpsdctl start

    4. Mit mod_ssl oder einem anderen SSL Server, könnten Sie manuell stoppen
       und starten wollen:
    /path/to/apachectl stop
    /path/to/apachectl startssl

Die Orte der apachectl- und http(s)dctl-Binärdateien sind häufig verschieden. Wenn Ihr System einen `locate`, `whereis` oder `which` Befehl besitzt, können diese Ihnen beim Auffinden des Serverkontrollprogrammes helfen.

Verschiedene Beispiele zur Kompilierung von PHP für Apache wie folgt:

    ./configure --with-apxs --with-pgsql

Dies wird eine Bibliothek `libphp5.so` (oder `libphp4.so` in PHP4) erzeugen, die mittels einer LoadModule-Zeile in der `httpd.conf` des Apache geladen wird. PostgreSQL-Unterstützung ist in diese Bibliothek eingebaut.

    ./configure --with-apxs --with-pgsql=shared

Dies wird eine Bibliothek `libphp4.so` für Apache erzeugen, aber ebenso eine `pgsql.so`, die von PHP mit der Extension-Direktive in der `php.ini`-Datei oder durch explizites Laden in einem Skript mittels der Funktion dl() geladen wird.

    ./configure --with-apache=/path/to/apache_source --with-pgsql

Dies wird eine Bibliothek `libmodphp5.a`, eine `mod_php5.c` und einige zugehörige Dateien erzeugen und diese in das Verzeichnis `src/modules/php5` des Apache Quellcodes kopieren. Kompilieren Sie danach Apache mit `--activate-module=src/modules/php5/libphp5.a` und das Apache Build System wird eine `libphp5.a` erzeugen und statisch in die Binärdatei `httpd` einbinden (ersetzen Sie `php5` durch `php4` für PHP 4). Unterstützung für PostgreSQL wird in diese `httpd` Binärdatei mit eingebaut, weshalb das Endergebnis eine einzige Datei namens `httpd` ist, welche den gesamten Apache und PHP beinhaltet.

    ./configure --with-apache=/path/to/apache_source --with-pgsql=shared

Genau wie oben, aber anstatt die Unterstützung für PostgreSQL direkt in `httpd` mit einzubinden wird eine gemeinsam verwendete Bibliothek namens `pgsql.so` erzeugt, die man mittels der `php.ini` Datei oder direkt über dl() in PHP einbinden kann.

Wenn Sie aus den verschiedenen Möglichkeiten auswählen, PHP zu kompilieren, sollten Sie die Vor- und Nachteile der jeweiligen Methoden bedenken. Das Erzeugen einer gemeinsam verwendeten Bibliothek resultiert darin, dass man Apache getrennt kompilieren kann und nicht alles erneut kompilieren muss, wenn man etwas zu PHP hinzufügt oder ändert. Das direkte einbauen in Apache (statisch) bedeutet, dass PHP schneller lädt und schneller läuft. Für weitere Informationen konsultieren Sie die Apache Webseite zu DSO Unterstützung.

> Anmerkung: Apaches mitgelieferte `httpd.conf` enthält derzeit einen Abschnitt, der wie folgt aussieht:

>     User nobody
>     Group "#-1"

> Wenn man dies nicht auf "Group nogroup" oder etwas ähnliches ("Group daemon" ist auch üblich) ändert, wird PHP nicht imstande sein, Dateien zu öffnen.

> Anmerkung: Stellen Sie sicher, dass Sie die installierte Version von apxs angeben, wenn Sie `--with-apxs=/path/to/apxs` verwenden. Sie dürfen NICHT die apxs-Version angeben, die dem Apache Quellcode beiliegt, sondern jene, die tatsächlich auf Ihrem System installiert ist.

Zurück | Zum Anfang | Weiter
Generelle Überlegungen | Nach oben | Apache 2.0 auf Unix Systemen