Apache 2.x auf Unixsystemen
Dieser Abschnitt enthält Hinweise und Tipps, die sich auf die Installation
von PHP speziell für Apache 2.x auf Unixsystemen beziehen.
WarnungWir empfehlen, in einer
Produktionsumgebung kein Threaded MPM mit Apache2 zu verwenden. Verwenden Sie
stattdessen das Prefork MPM, welches der Standard-MPM für Apace 2.0 und 2.2 ist.
Für weitere Informationen und die Gründe lesen Sie bitte den entsprechenden
FAQ-Eintrag über die Verwendung von
Apache2 mit Threaded MPM.
Die » Apache Dokumentation ist
die maßgebliche Informationsquelle für den Apache 2.x Server. Dort können
weitere Informationen über Installationsoptionen für Apache gefunden
werden.
Die aktuellste Version des Apache HTTP Servers kann von der
» Apache Download Site bezogen werden,
und eine passende PHP-Version von den oben angegebenen Quellen.
Dieser Schnelleinstieg behandelt nur die Grundlagen, um mit Apache 2.x und
PHP einzusteigen. Für mehr Informationen lesen Sie bitte die
» Apache-Dokumentation.
Versionsnummern wurden hier ausgelassen, um sicherzustellen, dass die
Anweisungen nicht inkorrekt sind. In den folgenden Beispielen sollte 'NN'
durch die spezifische Version des verwendeten Apache ersetzt werden.
Es gibt aktuell zwei Versionen von Apache 2.x: 2.4 und 2.2. Obwohl es
verschiedene Gründe gibt, sich für eine zu entscheiden, ist 2.4 die
aktuellste Version, und diejenige, die empfohlen wird, wenn sie diese
Möglichkeit haben. Allerdings funktionieren die folgenden Anweisungen
sowohl für 2.4 als auch 2.2. Es ist zu beachten, dass Apache httpd 2.2
offiziell das Lebensende erreicht hat, so dass keine Weiterentwicklungen oder
Fehlerkorrekturen mehr erfolgen werden.
-
Beziehen Sie den Apache HTTP Server vom oben genannten Ort,
und entpacken Sie ihn:
-
Beziehen und entpacken Sie die PHP-Quellen gleichermaßen:
-
Kompilieren und installieren Sie Apache. Entnehmen Sie der
Apache-Installationsdokumentation weitere Details zur Kompilierung.
-
Nun steht Ihnen Apache 2.x.NN unter /usr/local/apache2 zur Verfügung,
konfiguriert mit Unterstützung für nachladbare Module und dem
Standard MPM Prefork. Um diese Installation zu testen, verwenden Sie die
übliche Prozedur, den Apacheserver zu starten, also z. B.:
Stoppen Sie nun den Server, um mit der Konfiguration von PHP fortzufahren:
-
Konfigurieren und kompilieren Sie nun Ihr PHP. Dies ist die Stelle, an der
Sie Ihr PHP mit verschiedenen Optionen, wie etwa installierten
Erweiterungen, anpassen können. Rufen Sie
./configure --help auf, um eine Liste der verfügbaren
Optionen zu erhalten. In unserem Beispiel werden wir eine einfache
Konfiguration mit Unterstützung für Apache 2 und MySQL erzeugen.
Wenn Sie Apache aus den Quelltexten kompiliert haben, wie oben beschrieben
wurde, dann stimmt im folgenden Beispiel der Pfad von
apxs, aber wenn Sie Apache auf andere Weise installiert
haben, müssen Sie den Pfad von apxs entsprechend
anpassen. Es ist zu beachten, dass einige Distros möglicherweise
apxs zu apxs2 umbenennen.
Wenn Sie sich entscheiden, Ihre Konfigurationsoptionen nach der
Installation zu ändern, müssen Sie die Schritte
configure, make, und
make install erneut ausführen.
Um das neue Modul nutzen zu können, muss Apache nur neu gestartet werden.
Eine erneute Kompilierung des Apache ist nicht nötig.
Beachten Sie, dass, wenn nicht anders erwähnt,
make install ebenso PEAR und verschiedene PHP-Werkzeuge
wie phpize, PHP CLI und anderes
installieren wird.
-
Ihre php.ini einrichten
Sie können Ihre .ini
-Datei ändern, um verschiedene
PHP-Optionen zu setzen. Wenn Sie die php.ini-Datei
an einer anderen Stelle bevorzugen, verwenden Sie
--with-config-file-path=/some/path
in Schritt 5.
Wenn Sie sich stattdessen für php.ini-production
entscheiden, stellen Sie sicher, dass Sie die darin enthaltene Liste von
Änderungen lesen, da diese das Verhalten von PHP beeinflussen.
-
Bearbeiten Sie Ihre httpd.conf, um das PHP Modul zu
laden. Der Pfad auf der rechten Seite der Anweisung
LoadModule
muss auf den Ort des PHP-Moduls auf Ihrem
System zeigen. Das obige make install könnte dies
bereits für Sie hinzugefügt haben, aber Stellen Sie sicher, dass dies der
Fall ist.
-
Weisen Sie Apache an, bestimmte Dateiendungen als PHP Skripte zu behandeln.
Zum Beispiel werden wir den Apache Dateien mit der Endung
.php
als PHP ausführen lassen. Anstatt nur die
Apache-Direktive AddType
zu verwenden, wollen wir
zusätzlich verhindern, dass potentiell gefährliche hochgeladene und
erzeugte Dateien wie exploit.php.jpg als PHP-Dateien
ausgeführt werden. Wenn Sie dieses Beispiel verwenden, können Sie jede
Dateiendung als PHP interpretieren lassen, wenn Sie sie einfach hinzufügen.
Wir demonstrieren dies, indem wir .php
einfügen.
Oder wenn wir erlauben wollen, dass nur Dateien mit den Endungen
.php
, .php2
, .php3
,
.php4
, .php5
, .php6
und .phtml
als PHP interpretiert werden können, verwenden
wir ein Statement wie dieses:
Und um zu erlauben, dass .phps
-Dateien vom PHP
Source-Filter verarbeitet und als Quellcode mit Syntax-Highlighting
angezeigt werden, verwenden Sie:
mod_rewrite
kann verwendet werden, um zu erlauben, dass
jede beliebige .php
-Datei als Quellcode mit
Syntax-Highlighting angezeigt wird, ohne dass Sie die Datei zu
.phps
umbenennen oder kopieren müssen:
Der PHP-Source-Filter sollte auf Produktionssystemen nicht aktiviert werden,
da er vertrauliche oder anderweitig sensible Informationen, die im Quellcode
enthalten sind, preisgeben könnte.
-
Verwenden Sie die übliche Prozedur, um den Apache-Server zu starten, z. B.:
ODER
Wenn Sie den obigen Anweisungen folgen, werden Sie einen laufenden
Apache2 mit Unterstützung für PHP als SAPI
-Modul
erhalten. Natürlich existieren für Apache und PHP viele weitere
Konfigurationseinstellungen. Verwenden Sie
./configure --help im jeweiligen Quellcodeverzeichnis,
um weitere Informationen zu erhalten.
Apache2 kann multithreaded kompiliert werden, indem das
worker-MPM anstatt des standardmäßigen
prefork-MPM für den Build gewählt wird. Dies erfolgt,
indem die folgende Option zu dem Argument, das weiter oben in Schritt 3 an
./configure übergeben wird, hinzugefügt wird:
Dies sollte nicht durchgeführt werden, ohne sich der Konsequenzen dieser
Entscheidung bewusst zu sein, und zumindest eine angemesse Kenntnis der
Implikationen zu haben. Die Apache-Dokumentation bezüglich der
» MPM-Module erörtert MPMs sehr
ausführlich.
Hinweis:
Das Apache MultiViews FAQ
erörtert die Verwendung von Multiviews mit PHP.
Hinweis:
Um eine Multithreaded-Version von Apache zu erzeugen, muss das Zielsystem
Threads unterstützen. In diesem Fall sollte auch PHP mit der Zend Thread
Safety (ZTS) kompiliert werden. Unter dieser Konfiguration sind nicht alle
Erweiterungen verfügbar. Die empfohlene Einstellung ist es, Apache mit dem
standardmäßigen prefork-MPM-Modul zu bauen.