Diese Schritt-für-Schritt-Anleitung zeigt Ihnen, wie Sie Nginx installieren und konfigurieren, um PHP auf Ihrem Server mit PHP-FPM auszuführen.
Nginx + PHP ist eine der beliebtesten Softwaregruppen, die Sie zum Erstellen Ihrer Website verwenden können. Dieses Schritt-für-Schritt-Tutorial zeigt Ihnen, wie Sie Nginx installieren und konfigurieren, um PHP mit PHP-FPM auf Ihrem Server auszuführen.
Nginx ist die ideale Kombination mit PHP-FPM. Es ist ein stabiler Webserver, der für seine beeindruckende Leistung und seinen geringen Ressourcenverbrauch bekannt ist.
PHP wird als isolierter Dienst ausgeführt, wenn Sie PHP-FPM verwenden. Die Verwendung dieser PHP-Version als Sprachinterpreter bedeutet, dass Anfragen über einen UNIX-Socket verarbeitet werden. Der Nginx-Server verarbeitet nur HTTP-Anforderungen, während PHP-FPM den PHP-Code interpretiert.
1. Installieren von Nginx
Ubuntu / Debian
Da Nginx in den Standard-Repositories von Debian und Ubuntu verfügbar ist, ist die Installation aus diesen Repositories mit dem apt-Paketsystem möglich.
sudo apt install nginx
CentOS / AlmaLinux / Rocky Linux
Um die neueste Nginx-Version zu erhalten, müssen Benutzer von CentOS, AlmaLinux oder Rocky Linux zuerst das EPEL-Repository installieren.
EPEL (Extra Packages for Enterprise Linux) ist ein Open-Source- und kostenloses Community-basiertes Repository-Projekt des Fedora-Teams, das hochwertige Add-on-Softwarepakete für RHEL-basierte Linux-Distributionen bereitstellt.
sudo yum install epel-release
Dann können Sie den Nginx-Server installieren.
sudo yum install nginx
Fedora
Nginx ist in den standardmäßigen Fedora-Repositories verfügbar und kann direkt mit dnf
installiert werden Paketmanager.
sudo dnf install nginx
2. Installation von PHP-FPM
Ubuntu / Debian
Um PHP unter Ubuntu oder Debian zu installieren, führen Sie einfach den folgenden Befehl aus:
sudo apt install php-fpm
CentOS
Die standardmäßig auf CentOS-Servern verfügbare PHP-Version ist veraltet. Aus diesem Grund müssen wir ein Paket-Repository eines Drittanbieters installieren, um PHP 7 zu erhalten.
CentOS 7
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm
CentOS 8
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm
3. Konfigurieren von NGINX zum Ausführen von PHP mit PHP-FPM
Sobald Nginx und PHP installiert sind, können wir Nginx so konfigurieren, dass PHP-Anforderungen an PHP-FPM gesendet werden.
Wir müssen eine Nginx-Serverblock-Konfigurationsdatei erstellen, um PHP mit FPM auszuführen. Danach können Sie einen neuen VirtualHost gemäß Ihren Anforderungen erstellen und jeden neuen VirtualHost aktivieren.
sudo vim /etc/nginx/sites-available/example.com
Ersetzen Sie example.com
mit der Domain oder IP-Adresse Ihrer Website und dem root
Direktive mit dem Stammverzeichnis Ihrer Website.
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
Speichern Sie Ihre Änderungen in der Konfigurationsdatei und erstellen Sie einen Link zum standortaktivierten Verzeichnis.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
Stellen Sie sicher, dass der Name der PHP-Socket-Datei (in unserem Fall php7.4-fpm.sock
) angegeben in fastcgi_pass
Richtlinie ist richtig.
ls -l /var/run/php/
total 4
-rw-r--r-- 1 root root 5 Dec 1 17:43 php7.4-fpm.pid
srw-rw---- 1 www-data www-data 0 Dec 1 17:43 php7.4-fpm.sock
lrwxrwxrwx 1 root root 30 Dec 1 17:43 php-fpm.sock -> /etc/alternatives/php-fpm.sock
Wenn sich der Name von php7.4-fpm.sock
unterscheidet , ersetzen Sie es einfach im oben angezeigten Serverblock durch das aktuelle von Ihrem Server.
Starten Sie dann den Nginx-Dienst neu, um die Änderungen neu zu laden.
sudo systemctl restart nginx.service
4. Testen der Einrichtung
Erstellen Sie eine Test-PHP-Datei, um zu überprüfen, ob PHP-FPM funktioniert und in Nginx integriert ist. Im obigen Server-Block wird unsere Website von /var/www/html
bereitgestellt , also erstellen wir dort eine Testdatei:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Greifen Sie schließlich auf info.php
zu von einem Webbrowser unter Verwendung der Domain Ihrer Website oder der IP-Adresse Ihres Servers. Sie sollten die PHP-Konfigurationsseite sehen:
Fazit
Herzliche Glückwünsche! Sie haben Nginx eingerichtet, um PHP-Anfragen über PHP-FPM zu verarbeiten.
Es gibt einige nächste Schritte, die Sie von hier aus unternehmen könnten. Beispielsweise sollten Sie sicherstellen, dass Verbindungen zu Ihrem Server gesichert sind. Aber wie geht das?
Folgen Sie unserer Schritt-für-Schritt-Anleitung, um ein kostenloses SSL-Zertifikat von Let’s Encrypt für Ihren Server zu erwerben.