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 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.
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.
Als resultaat krijg je de standaard ‘index.html’ van de Lighttpd webserver.
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.
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
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.
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:
- Serveren via PHP-FPM dienst
- 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.
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.
Open vervolgens je webbrowser en typ het IP adres van de server, gevolgd door het ‘info.php’ bestand zoals hieronder.
Nu krijg je het resultaat als hieronder.
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.
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.
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.