|
|
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.
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:
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.
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.
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.
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:
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.
| |