Wie man Lighttpd mit PHP-FPM und MariaDB auf CentOS 8 installiert

Lighttpd ist ein Open-Source-Webserver, bei dem Einfachheit und hohe Leistung im Vordergrund standen. Es handelt sich um einen leichten Webserver mit kleinem und niedrigem Speicherverbrauch, der aber dennoch standardkonform, sicher und flexibel bleibt. Der Lighttpd Webserver ist ein Teil des LLMP-Stacks, was für Linux, Lighttpd, MySQL/MariaDB und PHP/PHP-FPM steht.

In diesem Tutorial zeigen wir Ihnen, wie Sie den LLMP-Stack auf dem CentOS 8 Server installieren und konfigurieren. Wir werden den Webserver Lighttpd mit dem Datenbankserver MariaDB und das PHP-FPM auf der neuesten Version des CentOS 8-Servers installieren.

Voraussetzungen

  • CentOS 8-Server
  • Root-Privilegien
  • Grundlagen des CentOS-Servers verstehen

Was werden wir tun?

  • Lighttpd Web-Server installieren
  • MariaDB-Datenbankserver installieren
  • PHP-FPM installieren
  • Einrichtung von Lighttpd und PHP-FPM
  • Testen

Schritt 1 – Lighttpd Web Server installieren

Zuerst werden wir das EPEL-Repository hinzufügen und den Lighttpd-Webserver auf unserem CentOS 8-System installieren. Standardmäßig ist Lighttpd auf dem EPEL (Extract Packages for Enterprise Linux)-Repository verfügbar.

Fügen Sie das EPEL-Repository mit dem unten stehenden DNF-Befehl zum CentOS 8-System hinzu.

sudo dnf install epel-release

Danach überprüfen Sie alle verfügbaren Repositories mit dem folgenden Befehl.

dnf repolist

Stellen Sie nun sicher, dass Sie das EPEL-Repository über das Ergebnis erhalten.

EPEL-Repository CentOS 8 installieren

Als nächstes installieren Sie Lighttpd-Pakete mit dem folgenden Befehl.

sudo dnf install lighttpd -y

Sobald die gesamte Installation abgeschlossen ist, starten Sie den Lighttpd-Dienst und fügen ihn dem Systemstart hinzu.

systemctl start lighttpd
systemctl enable lighttpd

Überprüfen Sie nun den Status des Lighttpd-Dienstes mit dem folgenden Befehl.

systemctl status lighttpd

Unten ist das Ergebnis, das Sie erhalten werden.

Lighttpd auf CentOS 8 installieren

Infolgedessen ist der Lighttpd-Dienst auf dem CentOS 8-System einsatzbereit.

Als Nächstes fügen Sie den HTTP-Dienst zur Firewall-Regelliste hinzu, indem Sie den nachstehenden Befehl ‚firewall-cmd‘ verwenden.

firewall-cmd --add-service=http --permanent
firewall-cmd --reload

Öffnen Sie nun Ihren Webbrowser und geben Sie die IP-Adresse des Servers in die Adressleiste ein.

http://192.168.1.50/

Als Ergebnis erhalten Sie die Standardeinstellung ‚index.html‘ des Lighttpd Webservers.

Lighttpd index.html

Schritt 2 – MariaDB-Datenbankserver installieren

In diesem Schritt installieren wir den MariaDB-Datenbankserver und richten das Standard-Root-Passwort für den MariaDB-Server ein.

Um den MariaDB-Datenbankserver zu installieren, führen Sie den untenstehenden dnf-Befehl aus.

sudo dnf install mariadb-server -y

Wenn die gesamte Installation abgeschlossen ist, starten Sie den MariaDB-Dienst und fügen ihn dem Systemstart hinzu.

systemctl start mariadb
systemctl enable mariadb

Überprüfen Sie nun den MariaDB-Dienst mit dem folgenden Befehl.

systemctl status mariadb

Unten ist das Ergebnis, das Sie erhalten werden.

MySQL-Dienst starten

Als Ergebnis ist der MariaDB-Dienst auf dem CentOS 8-System einsatzbereit.

Als nächstes führen Sie den unten stehenden Befehl ‚mysql_secure_installation‘ aus, um das Standard-Root-Passwort einzurichten.

mysql_secure_installation

Geben Sie nun das neue Passwort für Ihren MariaDB-Server und ‚Y‘ für alle Konfigurationen ein.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Und das MariaDB-Root-Passwort wurde konfiguriert.

Als nächstes loggen Sie sich mit dem Standard-Root-Benutzer und Ihrem Passwort in die MySQL-Shell ein.

mysql -u root -p

Nachdem Sie sich angemeldet haben, überprüfen Sie alle verfügbaren Benutzer auf dem MariaDB-Server mit Hilfe der folgenden Abfragen.

select User,Host from mysql.user;

Und Sie erhalten alle Standardbenutzer für den MySQL-Server. Geben Sie nun ‚exit‘ ein, um sich von der MySQL-Shell abzumelden.

Als Ergebnis wurde die Installation und Konfiguration des MariaDB-Datenbankservers auf dem CentOS 8-System abgeschlossen.

Schritt 3 – Installieren und Konfigurieren von PHP-FPM

Für diesen Schritt werden wir den Webserver PHP-FPM für Lighttpd installieren und konfigurieren.

Installieren Sie die PHP- und PHP-FPM-Pakete mit dem Befehl dnf (siehe unten).

sudo dnf install php php-fpm lighttpd-fastcgi php-mysqlnd php-pdo php-gd php-mbstring

Sobald die Installation abgeschlossen ist, editieren Sie die Konfiguration ‚/etc/php-fpm.d/wwww.conf‘ mit dem vim-Editor.

vim /etc/php-fpm.d/www.conf

Ändern Sie den Standardwert für ‚Benutzer‘ und ‚Gruppe‘ wie unten angegeben in Lighttpd.

user = lighttpd
group = lighttpd

Ändern Sie den standardmäßigen PHP-FPM-Listener unter Verwendung der lokalen IP-Adresse mit Port ‚9000‘.

listen = 127.0.0.1:9000

Speichern und schließen.

Als nächstes bearbeiten Sie die PHP-Konfiguration ‚/etc/php.ini‘ mit dem Editor vim.

vim /etc/php.ini

Entkommentieren Sie die folgende Zeile, um Unterstützung mit der PHP-CGI für den Lighttpd Webserver zu erhalten.

cgi.fix_pathinfo=1

Speichern und schließen.

Als nächstes starten Sie den PHP-FPM-Dienst und fügen ihn dem Systemstart hinzu.

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM-Dienst konfigurieren

Der PHP-FPM-Dienst ist eingerichtet und läuft, überprüfen Sie dies mit dem folgenden Befehl.

ss -plnt
systemctl status php-fpm

Unten ist das Ergebnis, das Sie erhalten werden.

PHP-FPM-Dienst prüfen

Als Ergebnis ist das PHP-FPM auf dem CentOS 8-Server mit der lokalen IP-Adresse und dem Port ‚9000‘ einsatzbereit.

Schritt 4 – Einrichtung von Lighttpd und PHP-FPM

In diesem Schritt werden wir den Lighttpd so konfigurieren, dass er mit unserer PHP-FPM-Installation funktioniert.

Standardmäßig kann der Lighttpd auf zwei Arten verwendet werden, um PHP-Webanwendungen zu bedienen:

  1. Dienen durch PHP-FPM-Dienst
  2. Dienen durch selbst laichendes PHP-CI

Dazu müssen wir das FastCGI-Modul auf dem Lighttpd-Webserver aktivieren und unsere Konfiguration in die Konfigurationsdatei des FastCGI-Moduls einfügen.

– FastCGI-Modul aktivieren

Bevor Sie weitermachen, gehen Sie in das Verzeichnis ‚/etc/lighttpd/‘ und editieren Sie die Konfiguration ‚modules.conf‘ mit dem Editor vim.

cd /etc/lighttpd/
vim modules.conf

Kommentieren Sie das ‚FastCGI‘-Modul wie unten beschrieben aus.

##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"

Speichern und schließen.

Als nächstes müssen wir unsere PHP-Konfiguration in die Konfigurationsdatei ‚conf.d/fastcgi.conf‘ einfügen.

Innerhalb des Verzeichnisses ‚/etc/lighttpd‘ editieren Sie die FastCGI-Konfiguration ‚conf.d/fastcgi.conf‘ mit dem Editor vim.

vim conf.d/fastcgi.conf

– Verwendung mit PHP-FPM-Dienst

Wenn Sie den PHP-FPM-Dienst verwenden möchten, der bereits auf der lokalen IP-Adresse mit TCP-Port ‚9000‘ läuft, fügen Sie die folgende Konfiguration ein.

fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Speichern und schließen.

– Selbst-erscheinenden PHP-Dienst benutzen

Wenn Sie als Nächstes die selbsterstellte PHP-CGI für Lighttpd verwenden möchten, fügen Sie die folgende Konfiguration in diese ein.

fastcgi.server = ( ".php" => 
        (( 
                "bin-path" => "/usr/bin/php-cgi",
                "socket" => "/var/run/lighttpd/php.socket",
                "max-procs" => 4,
                "bin-environment" => (
                "PHP_FCGI_CHILDREN" => "",
                "PHP_FCGI_MAX_REQUESTS" => "500" 
                    ),
                "broken-scriptfilename" => "enable" 
        ))
)

Speichern und schließen.

Legen Sie als nächstes ein neues Verzeichnis ‚/var/run/lighttpd‘ an und ändern Sie den Besitzer dieses Verzeichnisses auf den Benutzer ‚lighttpd‘.

mkdir -p /var/run/lighttpd
sudo chown -R lighttpd:lighttpd /var/run/lighttpd

Starten Sie nun den Lighttpd-Dienst neu, um die neue Konfiguration anzuwenden.

systemctl restart lighttpd

Stellen Sie sicher, dass kein Fehler vorliegt und dass die Konfiguration von Lighttpd mit dem PHP-FPM-Dienst oder unter Verwendung von spawning PHP-CGI erfolgreich abgeschlossen wurde.

Konfigurieren von Lighttpd mit PHP-FPM

Schritt 5 – Testen

Um unsere LLMP-Installation zu testen, werden wir eine neue phpinfo-Datei im Standard-Lighttpd-Dokument-Root-Verzeichnis erstellen.

Gehen Sie in das Verzeichnis ‚/var/www/lighttpd‘ und erzeugen Sie eine neue php-Datei ‚info.php‘ mit dem Editor vim.

cd /var/www/lighttpd/
vim info.php

Fügen Sie das folgende Skript in den Stack ein.

<?php
phpinfo();
?>

Speichern und schließen.

PHPINFO-Datei zum Testen der LLMP-Stapel-Installation erstellen

Öffnen Sie als nächstes Ihren Webbrowser und geben Sie die IP-Adresse des Servers gefolgt von der Datei ‚info.php‘ wie unten beschrieben ein.

http://192.168.1.50/info.php

Nun erhalten Sie das Ergebnis wie unten dargestellt.

phpinfo

Wie Sie sehen können, arbeitet das PHP-FPM mit dem Lighttpd Webserver zusammen.

Daher wurde die Installation des LLMP-Stacks (Linux, Lighttpd, MariaDB und PHP-FPM) auf dem CentOS 8 Server erfolgreich abgeschlossen.

Schritt 6 – Zusätzlich: Überprüfung der PHP- und Lighttpd-Dienste

Wenn Sie den Lighttpd mit „slef-spawned“ PHP-Dienst unter Verwendung der folgenden Konfiguration ausführen.

Lighttpd mit selbstgesponnenem PHP-Dienst

Sie können den PHP-Dienst mit dem folgenden Befehl überprüfen.

ss -pl | grep php
systemctl status php-fpm

Unten sehen Sie das Ergebnis, das Sie erhalten werden.

Lighttpd mit PHP-Self-Spawned-Dienst

Wie zu sehen ist, läuft der selbstgesponnene PHP-Prozess unter einer 4-Socket-Datei. Auch wenn der PHP-FPM-Dienst ausgefallen ist, arbeitet der Lighttpd immer noch für die Verarbeitung von PHP-Anwendungen.

Das könnte dich auch interessieren …