Nginx mit PHP-FPM auf CentOS 8 installieren und konfigurieren
Nginx ist ein kostenloser, quelloffener und einer der leistungsfähigsten Webserver weltweit. Er wird vor allem für stark ausgelastete und stark frequentierte Websites verwendet. Nginx ist bekannt für seine Stabilität, die einfache Konfiguration und den geringen Ressourcenverbrauch. Du kannst Nginx als Webserver und Reverse Proxy verwenden.
FPM steht für FastCGI Process Manager und ist eine alternative FastCGI-Implementierung von PHP, die für Websites mit hohem Datenverkehr verwendet wird. Er wird häufig zusammen mit Webservern verwendet, um PHP-Seiten auszuliefern. PHP-FPM verbraucht weniger Speicher und CPU im Vergleich zu anderen Methoden zur Ausführung von PHP. PHP-FPM ist schneller als traditionelle CGI-basierte Methoden für PHP-Umgebungen mit mehreren Benutzern. Mit PHP-FPM können auch mehrere PHP-Versionen gleichzeitig ausgeführt werden.
In diesem Tutorial lernen wir, wie wir Nginx mit PHP-FPM-Unterstützung in CentOS 8 installieren.
Voraussetzungen
- Ein Server, auf dem CentOS 8 läuft.
- Ein Root-Passwort ist auf deinem Server eingerichtet.
Erste Schritte
Standardmäßig ist SELinux auf dem CentOS 8 Server aktiviert. Daher musst du es zunächst deaktivieren.
Das kannst du tun, indem du die Datei /etc/selinux/config bearbeitest:
nano /etc/selinux/config
Nimm die folgenden Änderungen vor:
SELINUX=disabled
Speichere und schließe die Datei. Starte dann deinen Server neu, um die Änderungen zu übernehmen.
Nginx Webserver installieren
Installiere zunächst den Nginx-Webserver mit dem folgenden Befehl:
yum install nginx -y
Sobald Nginx installiert ist, starte den Nginx-Dienst und aktiviere ihn mit dem folgenden Befehl, damit er beim Booten startet:
systemctl start nginx systemctl enable nginx
Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
PHP und PHP-FPM installieren
Als Nächstes installierst du PHP und PHP-FPM, indem du den folgenden Befehl ausführst:
yum install php php-cli php-common php-fpm -y
Sobald alle Pakete installiert sind, starte den PHP-FPM-Dienst und aktiviere ihn so, dass er nach dem Neustart des Systems gestartet wird:
systemctl start php-fpm systemctl enable php-fpm
Du kannst den Status des PHP-FPM-Dienstes auch mit folgendem Befehl überprüfen:
systemctl status php-fpm
Du solltest die folgende Ausgabe erhalten:
? php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-10-17 05:39:11 EDT; 4min 40s ago Main PID: 1475 (php-fpm) Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 6 (limit: 5060) Memory: 28.5M CGroup: /system.slice/php-fpm.service ??1475 php-fpm: master process (/etc/php-fpm.conf) ??1478 php-fpm: pool www ??1479 php-fpm: pool www ??1480 php-fpm: pool www ??1481 php-fpm: pool www ??1482 php-fpm: pool www Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager... Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.
Eine Indexseite für Nginx erstellen
Als Nächstes musst du eine Beispielseite info.php erstellen, um zu testen, ob Nginx PHP-FPM verwendet oder nicht.
Du kannst eine info.php im Stammverzeichnis von Nginx erstellen, wie unten gezeigt:
nano /var/www/html/info.php
Füge die folgenden Zeilen ein:
<?php phpinfo(); ?>
Speichere und schließe die Datei, wenn du fertig bist.
Als Nächstes änderst du den Eigentümer der Datei info.php auf Nginx:
chown -R nginx: /var/www/html/info.php/
Nginx mit PHP-FPM konfigurieren
Als Nächstes musst du eine Konfigurationsdatei für den virtuellen Nginx-Host erstellen und die PHP-FPM-Unterstützung aktivieren.
Du kannst sie mit dem folgenden Befehl erstellen:
nano /etc/nginx/conf.d/example.conf
Füge die folgenden Zeilen hinzu:
server { listen 80; server_name example.com; root /var/www/html/; index info.php; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires max; log_not_found off; } }
Speichere und schließe die Datei. Teste dann Nginx mit folgendem Befehl auf Syntaxfehler:
nginx -t
Aktiviere anschließend die Nginx-Datei für den virtuellen Host und starte den Nginx-Dienst neu, um die Konfiguration zu übernehmen:
systemctl restart nginx
Nginx mit PHP-FPM-Unterstützung testen
Öffne nun deinen Webbrowser und gib die URL http://example.com ein. Du wirst auf die folgende Seite weitergeleitet:
Auf der obigen Seite solltest du sehen, dass PHP-FPM mit dem Nginx-Webserver geladen ist.
Fazit
Glückwunsch! Du hast Nginx mit PHP-FPM-Unterstützung erfolgreich auf einem CentOS 8-Server installiert. Jetzt kannst du PHP-FPM nutzen, um mehrere Websites zu hosten, die unterschiedliche PHP-Versionen verwenden.