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.
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.
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.
Die Anweisungen, die Sie zum unten in Zeile 10 abgebildeten
configure-Aufruf hinzufügen können, können Sie aus der
Liste von grundlegenden
Configure-Optionen und aus den für Erweiterungen spezifiscen
Optionen, die auf den jeweiligen Handbuchseiten beschrieben sind,
auswählen. Um sicherzustellen, dass die Anweisungen nicht inkorrekt sind,
wurden Versionsnummern hier ausgelassen. Sie müssen die Zeichenkette
'xxx' hier mit den zu Ihren Dateien passenden Werten ersetzen.
Beispiel #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 'make install', falls nicht anders angewiesen,
ebenfalls PEAR, verschiedene PHP-Tools wie phpize, das 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 PHP-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 diese sich auf das Verhalten
von PHP auswirken.
14. Ändern Sie Ihre httpd.conf-Datei, damit das PHP-Modul geladen wird. 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 bereits für Sie 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 ClearModuleList, 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, jeweils durch ein Leerzeichen getrennt, hinzufügen. 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 #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 außerdem noch "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
Hinweis:
Ersetzen Sie php-5 durch php-4
und php5 durch php4 in PHP4.
Abhängig von Ihrer Apacheinstallation und Unixvariante gibt es viele
verschiedene Methoden, um den Server anzuhalten und erneut zu starten.
Unten sind für verschiedene Apache/Unix-Installationen einige typische
Zeilen zum Neustart des Servers. Sie sollten /path/to
mit dem Pfad dieser Anwendungen auf Ihrem System ersetzen.
Beispiel #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 zur
DSO-Unterstützung.
Hinweis:
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.
Hinweis:
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.