Lighttpd met PHP-FPM en MariaDB installeren op CentOS 8

Lighttpd is een open source webserver die gericht is op eenvoud en hoge prestaties. Het is een lichte webserver met een klein en laag geheugengebruik, maar die toch aan de standaard blijft voldoen, veilig en flexibel is. De Lighttpd web sevrer is een onderdeel van de LLMP Stack, die staat voor Linux, Lighttpd, MySQL/MariaDB, en PHP/PHP-FPM.

In deze zelfstudie laten we je zien hoe je de LLMP Stack op de CentOS 8 Server installeert en configureert. We installeren de Lighttpd webserver met de MariaDB databaseserver, en de PHP-FPM op de nieuwste versie van de CentOS 8 server.

Vereisten

  • CentOS 8 server
  • Root rechten
  • Inzicht in de basis van CentOS Server

Wat zullen we doen?

  • Lighttpd webserver installeren
  • MariaDB Database Server installeren
  • Installeren van PHP-FPM
  • Lighttpd en PHP-FPM instellen
  • Testen van

Stap 1 – Installeer Lighttpd Web Server

Eerst zullen we de EPEL repository toevoegen en de Lighttpd webserver op ons CentOS 8 systeem installeren. Lighttpd is standaard beschikbaar in de EPEL (Extract Packages for Enterprise Linux) repository.

Voeg de EPEL repository aan het CentOS 8 systeem toe met het onderstaande DNF commando.

sudo dnf install epel-release

Controleer daarna alle beschikbare repositories met het volgende commando.

dnf repolist

Zorg er nu voor dat je de EPEL repository op het resultaat krijgt.

Installeer de EPEL Repository CentOS 8

Installeer vervolgens Lighttpd pakketten met het onderstaande commando.

sudo dnf install lighttpd -y

Als alle installatie voltooid is, start je de Lighttpd service en voeg je hem toe aan het systeem opstarten.

systemctl start lighttpd
systemctl enable lighttpd

Controleer nu de status van de Lighttpd service met het volgende commando.

systemctl status lighttpd

Hieronder staat het resultaat dat je krijgt.

Installeer Lighttpd op CentOS 8

Het resultaat is dat de Lighttpd dienst op het CentOS 8 systeem up and running is.

Voeg vervolgens de HTTP dienst toe aan de firewalld regellijst met het onderstaande ‘firewall-cmd’ commando.

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

Open nu je web browser en typ het IP adres van de server in de adresbalk.

http://192.168.1.50/

Als resultaat krijg je de standaard ‘index.html’ van de Lighttpd webserver.

Lighttpd index.html

Stap 2 – Installeer de MariaDB Database Server

In deze stap installeren we de MariaDB databaseserver en stellen we het standaard root wachtwoord voor de MariaDB server in.

Om de MariaDB databaseserver te installeren, voer je het onderstaande dnf commando uit.

sudo dnf install mariadb-server -y

Als de hele installatie klaar is, start je de MariaDB dienst en voeg je hem toe aan het systeem opstarten.

systemctl start mariadb
systemctl enable mariadb

Controleer nu de MariaDB dienst met het onderstaande commando.

systemctl status mariadb

Hieronder staat het resultaat dat je krijgt.

Start de MySQL dienst

Het resultaat is dat de MariaDB dienst draait op het CentOS 8 systeem.

Voer nu het onderstaande ‘mysql_secure_installation’ commando uit om het standaard root wachtwoord in te stellen.

mysql_secure_installation

Typ nu het nieuwe wachtwoord voor je MariaDB server en typ ‘Y’ voor alle configuraties.

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

En het MariaDB root wachtwoord is ingesteld.

Log nu in op de MySQL shell met de standaard root gebruiker en je wachtwoord.

mysql -u root -p

Als je ingelogd bent, controleer dan alle beschikbare gebruikers op de MariaDB server met de volgende query’s.

select User,Host from mysql.user;

En je krijgt alle standaard gebruikers voor de MySQL server. Typ nu ‘exit’ om uit te loggen uit de MySQL shell.

Daarmee zijn de installatie en configuratie van de MariaDB databaseserver op het CentOS 8 systeem voltooid.

Stap 3 – Installeer en configureer PHP-FPM

Bij deze stap installeren en configureren we de webserver PHP-FPM voor Lighttpd.

Installeer PHP en PHP-FPM pakketten met het onderstaande dnf commando.

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

Als alle installatie voltooid is, bewerk je de configiuratie ‘/etc/php-fpm.d/www.conf’ met vim editor.

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

Verander de standaard ‘user’ en ‘group’ in Lighttpd zoals hieronder.

user = lighttpd
group = lighttpd

Verander de standaard PHP-FPM listen door het lokale IP adres te gebruiken met poort ‘9000’.

listen = 127.0.0.1:9000

Bewaar en sluit.

Bewerk vervolgens de PHP configuratie ‘/etc/php.ini’ met een vim editor.

vim /etc/php.ini

Haal het commentaar weg op de volgende regel om ondersteuning te krijgen met de PHP-CGI voor de Lighttpd webserver.

cgi.fix_pathinfo=1

Bewaar en sluit.

Start nu de PHP-FPM dienst en voeg hem toe aan het systeem opstarten.

systemctl start php-fpm
systemctl enable php-fpm

Configureer de PHP-FPM dienst

De PHP-FPM dienst is aan de praat, controleer dat met het volgende commando.

ss -plnt
systemctl status php-fpm

Hieronder staat het resultaat dat je krijgt.

Controleer de PHP-FPM dienst

Het resultaat is dat de PHP-FPM up and running is op de CentOS 8 server met het lokale IP adres en poort ‘9000’.

Stap 4 – Lighttpd en PHP-FPM instellen

In deze stap configureren we de Lighttpd om hem te laten samenwerken met onze PHP-FPM installatie.

Standaard kan de Lighttpd gebruikt worden om PHP webapplicaties op twee manieren te serveren:

  1. Serveren via PHP-FPM dienst
  2. Serveren via zelf-gespawnde PHP-CI

Om dat te doen moeten we de FastCGI module inschakelen op de Lighttpd webserver en onze configuratie toevoegen aan het FastCGI module configuratie bestand.

– Schakel FastCGI module in

Ga, voor je verder gaat, naar de ‘/etc/lighttpd/’ directory en bewerk de configuratie ‘modules.conf’ met een vim editor.

cd /etc/lighttpd/
vim modules.conf

Haal het commentaar weg bij de ‘FastCGI’ module zoals hieronder.

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

Opslaan en sluiten.

Vervolgens moeten we onze PHP configuratie toevoegen aan het ‘conf.d/fastcgi.conf’ configuratiebestand.

Bewerk binnen de ‘/etc/lighttpd’ directory de FastCGI configuratie ‘conf.d/fastcgi.conf’ met een vim editor.

vim conf.d/fastcgi.conf

– Gebruik met de PHP-FPM dienst

Als je de PHP-FPM dienst wilt gebruiken, die al draait op het lokale IP adres met TCP poort ‘9000’, plak dan de volgende configuratie.

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

Sla op en sluit.

– Zelf paaiende PHP dienst gebruiken

Als je vervolgens de self spawning PHP-CGI voor Lighttpd wilt gebruiken, plak er dan de volgende configuratie in.

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"
        ))
)

Bewaar en sluit.

Maak vervolgens een nieuwe directory ‘/var/run/lighttpd’ en verander het eigendom van die directory naar de ‘lighttpd’ gebruiker.

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

Herstart nu de Lighttpd dienst om de nieuwe configuratie toe te passen.

systemctl restart lighttpd

Controleer of er geen fout optreedt, en als resultaat is de configuratie van Lighttpd met PHP-FPM Service of met behulp van spawning PHP-CGI met succes voltooid.

Configureer Lighttpd met PHP-FPM

Stap 5 – Testen

Om onze LLMP installatie te testen, maken we een nieuw phpinfo bestand aan op de standaard Lighttpd Document Root directory.

Ga naar de ‘/var/www/lighttpd’ directory en maak een nieuw php bestand ‘info.php’ met behulp van vim editor.

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

Plak er het volgende script in.

<?php
phpinfo();
?>

Bewaar en sluit.

Maak PHPINFO bestand om de LLMP Stack installatie te testen

Open vervolgens je webbrowser en typ het IP adres van de server, gevolgd door het ‘info.php’ bestand zoals hieronder.

http://192.168.1.50/info.php

Nu krijg je het resultaat als hieronder.

phpinfo

Zoals te zien is, werkt de PHP-FPM samen met de Lighttpd webserver.

Het resultaat is dat de installatie van de LLMP Stack (Linux, Lighttpd, MariaDB, en PHP-FPM) op de CentOS 8 Server met succes voltooid is.

Stap 6 – Extra: Controleren van PHP en Lighttpd diensten

Als je de Lighttpd met slef-spawned PHP dienst draait met de ocnfiguratie hieronder.

Lighttpd met PHP zelf-gespawned dienst

Je kunt de PHP dienst controleren met het onderstaande commando.

ss -pl | grep php
systemctl status php-fpm

Hieronder staat het resultaat dat je krijgt.

Lighttpd met PHP Self-Spawned Dienst

Zoals te zien is, draait het zelf-gespawnde PHP proces onder 4 socket bestanden. Zelfs de PHP-FPM dienst is uitgevallen, de Lighttpd werkt nog steeds voor het verwerken van PHP toepassingen.