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-development /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-production 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. LoadModule php5_module libexec/libphp5.so 15. Fügen Sie dies im AddModule-Abschnitt Ihrer httpd.conf, irgendwo unterhalb von ClearModuleList, hinzu: 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-development /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
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:
./configure --with-apxs --with-pgsql
Dies wird eine Bibliothek libphp5.so 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 libphp5.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. 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 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.User nobody Group "#-1"
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.