RAID-Technologie verspricht höhere Performance und mehr Sicherheit beim permanenten Speichern von Daten. Die ADMIN-Redaktion gibt einen Überblick über ... (mehr)

Indianerhäuptling

Apache muss die eingehende Anfrage an PHP-FPM weiterreichen. Dies übernimmt das Apache-Modul »mod_fastcgi« . Windows-Administratoren bekommen es als fertige DLL-Datei auf der FastCGI-Seite [4]. Unter Linux hilft ein Blick in den Paketmanager: Bei Debian 6 steckt das Modul im Paket »libapache2-mod-fastcgi« (aus dem »non-free« -Repository). Dabei sollte man darauf achten, nicht das fast gleichlautende Modul »mod_fcgid« zu erwischen. Dieses rüstet FastCGI unter Apache 2 nach, bringt aber seinen eigenen Prozess-Manager mit und kann eingehende Anfragen nicht an einen schon laufenden Interpreter wie PHP-FPM weiterreichen. Folglich ist es in diesem Fall nutzlos.

Wer Debian 6 verwendet und noch keinen Apache 2 installiert hat, spielt mit folgendem Kommandozeilenbefehl die notwendigen Pakete ein:

apt-get install apache2-mpm-worker libapache2-mod-fastcgi

Als Nächstes aktiviert der Befehl »a2enmod fastcgi« das Modul. Das Modul »mod_php5« lässt sich so deaktivieren: »a2dismod php5« .

Jetzt muss man nur noch in der Apache-Konfigurationsdatei »httpd.conf« die Zeilen aus Listing 2 ergänzen. Unter Debian 6 empfiehlt es sich, die Anweisungen in einer eigenen Datei, etwa mit dem Namen »php5-fcgi.conf« , im Verzeichnis »/etc/apache2/conf.d« abzulegen. Entscheidend ist die Zeile »FastCgiExternalServer« , die Apache anweist, die Anfragen an den TCP-Port 9000 weiterzureichen. Sofern zuvor »mod_php« aktiv war, muss man dessen Konfiguration noch löschen beziehungsweise auskommentieren.

Listing 2

Apache-2-Konfiguration für PHP-FPM

 

Anschließend startet »/etc/init.d/apache2 restart« den Webserver neu. Zur Probe sollte man jetzt eine simple PHP-Datei »info.php« mit dem Inhalt:

<?php phpinfo(); ?>

im Document-Root ablegen, bei Debian 6 im Verzeichnis »/var/www« . Steuert man jetzt diese Datei im Browser an, sollte sich PHP-FPM wie in Abbildung 5 als Interpreter zu erkennen geben.

Abbildung 5: phpinfo() verrät, dass PHP-FPM die Anfrage beantwortet hat.

Sockel

In Listing 1 übergibt der Webserver die eingehenden Anfragen über den TCP-Port 9000 an PHP-FPM. Wenn Webserver und PHP-FPM auf der gleichen Maschine laufen, bietet sich auch die Verwendung von Unix-Sockets an. Damit verringert sich der TCP-Overhead. Um PHP-FPM am Unix-Socket »/tmp/php5-fpm.socket« lauschen zu lassen, muss in der Pool-Konfigurationsdatei aus Listing 1 die Zeile »listen« durch

listen = /tmp/php5-fpm.socket

ausgetauscht werden. Als Nächstes ersetzt man die Zeile »listen.allowed_clients« mit der Dreierbande:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

Sie gibt den Besitzer (»listen.owner« ), die Gruppe (»listen.group« ) und die Zugriffsrechte (»listen.mode« ) des Sockets vor. Anschließend startet dieser Befehl PHP-FPM neu:

/etc/init.d/php5-fpm restart

Damit sollte jetzt die Datei »/tmp/php5-fpm.sock« existieren, dem Benutzer »www-data« gehören und die Rechte »0660« besitzen.

In der Konfiguration von Apache 2 ist die mit »FastCgiExternalServer« beginnende Zeile durch

FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-headerAuthorization

auszutauschen. Anschließend startet man auch den Apache-Server nochmal neu.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2020