Zum Inhalt

Webserver Apache 2 (Ab Version 2.4)

FastCGI Process Manager

Um PHP deutlich zu beschleunigen kann der Prozessmanager FPM eingesetzt werden. So gehts mit einem bereits funktionierenden Apache:

  1. Installation der notwendigen Pakete libapache2-mod-fastcgi php-fpm
  2. Überprüfen von php-fpm:
root@r-t-w ~ # systemctl status php?.?-fpm.service
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-03-29 11:51:23 CEST; 4 days ago
     Docs: man:php-fpm7.3(8)
 Main PID: 16728 (php-fpm7.3)
   Status: "Processes active: 0, idle: 3, Requests: 64767, slow: 0, Traffic: 0.2req/sec"
    Tasks: 4 (limit: 4915)
   Memory: 2.5G
   CGroup: /system.slice/php7.3-fpm.service
           ├─ 3390 php-fpm: pool www
           ├─ 3409 php-fpm: pool www
           ├─ 3594 php-fpm: pool www
           └─16728 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)

Mar 29 11:51:23 r-t-w systemd[1]: Starting The PHP 7.3 FastCGI Process Manager...
Mar 29 11:51:23 r-t-w systemd[1]: Started The PHP 7.3 FastCGI Process Manager.

Obacht!

Der Dienst ist nach der Installation nicht enabled! Außerdem muss bei Änderungen an der PHP-Konfiguration nun ebenfalls der Prozessmanager neu geladen oder gestartet werden

  1. Optional: Deaktivieren des Single-Thread Multiprozessingmoduls: a2dismod mpm_prefork
  2. Optional: Aktivieren des Multi-Thread Multiprozessingmoduls: a2enmod mpm_event

Tip

Das Ändern des Multiprozessverhalten des Apachen ist nicht zwingend notwendig, aber äußerst empfehlenswert. Der Parent Thread des Moduls mpm_event spawnt falls notwendig mehr Child-Threads. Das aus kompatibilitätsgründen standardmäßig aktivierte mpm_event verwendet maximal einen Thread.

  1. Aktivieren des notwendigen Apache-Moduls: a2enmod proxy_fcgi
  2. Aktivieren der notwendigen Override-Konfiguration: a2enconf php?.?-fpm
  3. Apache neustarten

Achtung!

Da FPM eine eigene PHP-Umgebungsdatei verwendet als Apache müssen etwaige Einstellungen (Speziell Module!) erneut in der entsprechenden php.ini aktiviert und konfiguriert werden.