PHP ist eine Allzweck-Skriptsprache, die auf die Webentwicklung ausgerichtet ist. Es ist eine der beliebtesten Programmiersprachen für das Web. Beliebte Tools wie WordPress werden mit PHP codiert. Auch große Unternehmen wie Facebook nutzen PHP stark.
Nginx ist ein Webserver, der auch als Reverse-Proxy, Load-Balancer, Mail-Proxy und HTTP-Cache verwendet werden kann. Es begann als Webserver, der auf maximale Leistung und Stabilität ausgelegt war. Nginx hat seit seiner Veröffentlichung aufgrund seiner geringen Ressourcennutzung und seiner Fähigkeit, auf minimaler Hardware problemlos zu skalieren, an Popularität gewonnen. Nginx zeichnet sich durch die schnelle Bereitstellung statischer Inhalte aus und ist darauf ausgelegt, dynamische Anfragen an andere Software weiterzuleiten, die für diese Zwecke besser geeignet ist.
Verwandte Inhalte
- Wie man PHP und Nginx (LEMP) auf OpenSUSE Leap 15.3 installiert und einrichtet
- So installieren Sie den Apache PHP 7.4 (LAMP) Stack auf Rocky Linux/Centos 8
- Wie man PHP und Apache (LAMP-Stack) unter Ubuntu 20.04 installiert und einrichtet
- So installieren und konfigurieren Sie PHP und Nginx (LEMP) unter Ubuntu 20.04
- Wie man PHP und Apache (LAMP-Stack) unter Debian 11 installiert und einrichtet
- Wie man PHP und Nginx (LEMP) unter Debian 11 installiert und einrichtet
Inhaltsverzeichnis
- Sicherstellen, dass der Server auf dem neuesten Stand ist
- Installation von PHP auf Rocky Linux/Alma Linux 8
- Installieren von Nginx auf Rocky Linux/Alma Linux 8
- Installation von php-fpm in Rocky Linux/Alma Linux 8
- Eine einfache Site erstellen und einen virtuellen Host konfigurieren
- Testen der Konfiguration
1. Sicherstellen, dass der Server auf dem neuesten Stand ist
Bevor Sie fortfahren, sollten Sie immer sicherstellen, dass der Server auf dem neuesten Stand ist. Verwenden Sie diese Befehle, um dies zu erreichen
sudo df update -y
2. Installation von PHP auf Rocky Linux/Alma Linux 8
Damit PHP-Dateien bereitgestellt werden können, muss PHP im System eingerichtet werden. In dieser Anleitung werden wir PHP 7.4 installieren.
PHP 7.4 ist noch nicht in den Standard-Repositories verfügbar. Das Remi-Repository ist das perfekte Repo, um php7.4 zu installieren. Remi Repo ist ein kostenloses und stabiles YUM-Repository hauptsächlich für den PHP-Stack. Es enthält Pakete für die neuesten Versionen von PHP.
So aktivieren Sie das Remi-Repository auf unserem Centos-Server:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Bestätigen Sie mit diesem Befehl, dass das Remi-Repository installiert und aktiviert wurde:
$ sudo dnf repolist
repo id repo name
appstream CentOS Linux 8 - AppStream
baseos CentOS Linux 8 - BaseOS
epel Extra Packages for Enterprise Linux 8 - x86_64
epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64
extras CentOS Linux 8 - Extras
remi-modular Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe Safe Remi's RPM repository for Enterprise Linux 8 - x86_64
Sie sollten die Remi-Repos als Teil der Liste sehen.
Nachdem das Repository installiert wurde, suchen wir nach php. Verwenden Sie diesen Befehl:
$ sudo dnf module list php
Last metadata expiration check: 0:49:30 ago on Wed 22 Dec 2021 04:23:13 AM UTC.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
Von der Liste. Wir können sehen, dass die Standardeinstellung 7.2 ist. Durchführen einer dnf install php
installiert die 7.2
was wir nicht wollen. Lassen Sie uns 7.4 mit diesem Befehl aktivieren:
sudo dnf module enable php:remi-7.4
Wenn es aus irgendeinem Grund fehlschlägt, können Sie das vorhandene Modul mit diesem Befehl zurücksetzen:
sudo dnf module reset php
Nachdem das Repo aktiviert wurde, können Sie PHP mit diesem Befehl installieren:
sudo dnf install -y php \
php-common \
php-cli
Einmal erfolgreich. Bestätigen Sie die installierte Version mit diesem Befehl:
$ php -v
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies
3. Nginx unter Rocky Linux installieren
Wir werden Nginx verwenden, um den PHP-Inhalt bereitzustellen. Nginx passt als stabiler Hochleistungs-Webserver und mit sehr geringem Ressourcenverbrauch perfekt zu PHP-FPM. Nginx hat eine asynchrone Architektur, die viel skalierbarer ist und auf Ereignissen basiert.
Nginx ist in den standardmäßigen Rocky Linux/Alma Linu Repos verfügbar. Installieren Sie es mit diesem Befehl:
sudo dnf install -y nginx
Bestätigen Sie das installierte nginx
$ rpm -qi nginx
Name : nginx
Epoch : 1
Version : 1.14.1
Release : 9.module+el8.4.0+542+81547229
Architecture: x86_64
Install Date: Wed 22 Dec 2021 05:16:08 AM UTC
Group : System Environment/Daemons
Size : 1669719
License : BSD
Signature : RSA/SHA256, Thu 10 Jun 2021 09:22:38 AM UTC, Key ID 15af5dac6d745a60
Source RPM : nginx-1.14.1-9.module+el8.4.0+542+81547229.src.rpm
Build Date : Thu 10 Jun 2021 09:10:40 AM UTC
Build Host : ord1-prod-x86build005.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager : [email protected]
Vendor : Rocky
URL : http://nginx.org/
Summary : A high performance web server and reverse proxy server
Description :
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low
Der Dienst wird standardmäßig nicht gestartet. Verwenden Sie zum Starten von Nginx diesen Befehl:
sudo systemctl start nginx
Bestätigen Sie den Status mit diesem Befehl:
$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/nginx.service.d
└─php-fpm.conf
Active: active (running) since Wed 2021-12-22 05:17:32 UTC; 45s ago
Process: 118235 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 118228 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 118226 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 118237 (nginx)
Tasks: 3 (limit: 23167)
Memory: 5.0M
CGroup: /system.slice/nginx.service
├─118237 nginx: master process /usr/sbin/nginx
├─118238 nginx: worker process
└─118239 nginx: worker process
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The nginx HTTP and reverse proxy server.
Um den Dienst beim Booten zu aktivieren, verwenden Sie diesen systemd-Befehl:
sudo systemctl enable nginx
4. Installation von PHP FPM in Rocky Linux/Alma Linux 8
PHP-FPM (ein Akronym für FastCGI Process Manager) ist eine äußerst beliebte alternative PHP (Hypertext Processor)-FastCGI-Implementierung. PHP-FPM ist die beliebteste alternative Implementierung von PHP FastCGI. Es hat zusätzliche Funktionen, die für stark frequentierte Websites wirklich nützlich sind. Bei Verwendung von Nginx mit PHP-FPM wird die Leistung auf der Ebene des Speicherverbrauchs verbessert.
PHP wird bei Verwendung von PHP-FPM als separater Dienst ausgeführt. Durch die Verwendung dieser PHP-Version als Sprachinterpreter werden Anfragen über einen TCP/IP-Socket verarbeitet; sodass der Nginx-Webserver nur die HTTP-Anfragen verarbeitet und PHP-FPM den PHP-Code interpretiert. Die Tatsache, dass es zwei getrennte Dienste gibt, ist der Schlüssel zur Steigerung der Effizienz.
Installieren Sie php-fpm mit diesem Befehl:
sudo dnf install -y php-fpm
Der Dienst wird standardmäßig nicht gestartet. Um es zu starten, verwenden Sie diesen systemd-Befehl:
sudo systemctl start php-fpm
Überprüfen Sie den Dienststatus, um mit diesem Befehl zu bestätigen, dass er ausgeführt wird:
$ sudo systemctl status php-fpm
● 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 Wed 2021-12-22 05:17:32 UTC; 3min 5s ago
Main PID: 118227 (php-fpm)
Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 6 (limit: 23167)
Memory: 22.9M
CGroup: /system.slice/php-fpm.service
├─118227 php-fpm: master process (/etc/php-fpm.conf)
├─118230 php-fpm: pool www
├─118231 php-fpm: pool www
├─118232 php-fpm: pool www
├─118233 php-fpm: pool www
└─118234 php-fpm: pool www
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The PHP FastCGI Process Manager...
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The PHP FastCGI Process Manager.
5. Erstellen einer einfachen Site und Konfigurieren eines virtuellen Hosts
Mit Nginx können Sie mehrere Sites mithilfe virtueller Hosts bedienen. Das Konzept der virtuellen Hosts ermöglicht mehr als eine Website auf einem System oder Webserver. Die Server werden durch ihren Hostnamen unterschieden. Besucher der Website werden anhand des Hostnamens oder der IP-Adresse an den richtigen virtuellen Host geleitet. Virtuelles Hosting ermöglicht es Unternehmen, die sich einen Server teilen, um jeweils ihre eigenen Domainnamen zu haben.
In diesem Beispiel verwenden wir die Domäne site1.citizix.com für den virtuellen Host, es steht Ihnen jedoch frei, die Domäne Ihrer Wahl zu verwenden. Bitte beachten Sie, dass der DNS für die zu verwendende Domain bereits so konfiguriert sein sollte, dass er auf die IP-Adresse des Servers zeigt. Bestätigen Sie dies mit:
dig -t A site1.citizix.com
Erstellen eines Verzeichnisses und Hinzufügen von Beispielinhalten
Die Standardseite von nginx ist als standardmäßiger virtueller Host konfiguriert, der Inhalte von /var/www/html
bereitstellt . Es hat sich bewährt, das Verzeichnis Ihrer Website im /var/www
zu erstellen da es sich bewährt hat, von dort aus zu dienen.
Lassen Sie uns mit dem folgenden Befehl ein Verzeichnis für unsere Site erstellen:
sudo mkdir /var/www/site1.citizix.com
Lassen Sie uns eine einfache index.php
erstellen Seite, die von unserer Website bereitgestellt werden soll. Sie müssen vim installiert haben, damit dies funktioniert, wenn nicht, verwenden Sie diesen Befehl:
sudo dnf install -y vim
Bearbeiten Sie die Datei:
sudo vim /var/www/site1.citizix.com/index.php
Inhalt zur Datei hinzufügen:
<?php phpinfo(); ?>
Erstellen eines virtuellen Hosts (Serverblöcke)
Ein Nginx-Serverblock kann verwendet werden, um Konfigurationsdetails zu kapseln und mehr als eine Domain auf einem einzelnen Server zu hosten. Wir werden einen virtuellen Host für unsere Website erstellen (site1.citizix.com).
Konfigurationen für virtuelle Nginx-Hosts werden im Verzeichnis /etc/nginx/conf.d/
gespeichert . Lassen Sie uns eine Konfiguration für unsere Site erstellen:
sudo vim /etc/nginx/conf.d/site1.citizix.com.conf
Fügen Sie den folgenden Inhalt hinzu
server {
listen 80;
server_tokens off;
client_max_body_size 100M;
server_name site1.citizix.com;
access_log /var/log/nginx/site1.citizix.com.log;
error_log /var/log/nginx/site1.citizix.com.log;
root /var/www/site1.citizix.com;
index index.php;
if ($host !~* ^(site1.citizix.com)$) {
return 444;
}
location / {
proxy_read_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Lassen Sie uns den nginx- und php-fpm-Dienst neu starten, damit die Konfiguration angewendet wird
sudo systemctl restart php-fpm
sudo systemctl restart nginx
6. Testen der Konfiguration
Um die Konfiguration zu testen, öffnen Sie Ihren Browser und laden Sie die von Ihnen eingerichtete Domain. In meinem Fall ist es http://site1.citizix.com
. Sie sollten die PHP-Infoseite sehen.
Wenn Sie Ihre DNS-Einstellungen noch nicht konfiguriert haben oder einfach nicht möchten, dass die Website live geht, können Sie die Hosts-Datei Ihres Computers ändern. Verwenden Sie dazu den folgenden Befehl in der CLI Ihres lokalen Computers
sudo vim /etc/hosts
Fügen Sie dann die IP-Adresse Ihres tatsächlichen Servers hinzu, gefolgt von dem Domänennamen, den Sie konfigurieren, zum Beispiel:
# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com
Jetzt sollten Sie die Datei speichern und über einen Webbrowser darauf zugreifen können.
Schlussfolgerung
Virtuelle Nginx-Hosts oder server
Blöcke sind eine großartige Möglichkeit, zusätzliche Websites zu demselben Ursprungsserver hinzuzufügen. Die Anzahl der Konfigurationsmöglichkeiten für eine bestimmte Site ist nahezu unbegrenzt, wenn Sie beginnen, die Konfigurationsdatei des virtuellen Hosts zu ändern, um sie an die spezifischen Anforderungen Ihrer Site anzupassen.
In diesem Leitfaden haben wir gelernt, wie man einen virtuellen Host einrichtet, um PHP-Inhalte in Rocky Linux/Alma Linux oder RHEL-basierten Systemen bereitzustellen.