Recherche de site Web

Comment installer Lighttpd avec MariaDB et PHP-FPM sur Ubuntu 22.04


La pile LLMP (Linux, Lighttpd, MariaDB et PHP-FPM) est une pile logicielle permettant de fournir des applications Web. Chaque composant de la pile LLMP est gratuit, open source et peut être installé sur plusieurs systèmes d'exploitation. La pile LLMP peut fournir des sites HTML statiques et des applications PHP telles que WordPress, Drupal et Joomla.

Ce didacticiel vous montrera comment installer et configurer la pile LLMP (Linux, Lighttpd, MariaDB et PHP-FPM) sur le dernier système Ubuntu 22.04. Ce didacticiel comprend des instructions sur la façon de configurer l'hôte virtuel sur le serveur Web Lighttpd et d'activer SSL/HTTPS.

Conditions préalables

Pour ce tutoriel, nous aurons besoin des prérequis suivants :

  • Un serveur Ubuntu 22.04.
  • Un utilisateur non root avec les privilèges root/administrateur

Installation du serveur Web Lighttpd

Lighttpd ou Lighty est un serveur Web hautes performances créé comme preuve de concept du problème c10k "comment gérer 10 000 connexions en parallèle sur un seul serveur".

Le Lighttpd est conçu pour la vitesse, la sécurité, la légèreté et la flexibilité. Il utilise peu le processeur et la mémoire et fournit des fonctionnalités avancées telles que FastCGI, CGI, Auth, Compression, URL Rewriting, etc.

Avant d'installer un package, exécutez la commande apt ci-dessous pour mettre à jour et actualiser l'index des packages de vos référentiels Ubuntu.

sudo apt update

Installez maintenant le serveur Web Lighttpd à l'aide de la commande suivante.

sudo apt install lighttpd

Saisissez Y pour confirmer l'installation et appuyez sur ENTER pour continuer. L'installation de Lighttpd va maintenant commencer.

Une fois l'installation de Lighttpd terminée, exécutez la commande ci-dessous pour démarrer et activer le service Lighttpd.

sudo systemctl start lighttpd
sudo systemctl enable lighttpd

Vérifiez et vérifiez le service Lighttpd à l'aide de la commande ci-dessous. Vous devriez voir que le service Lighttpd est en cours d'exécution et activé, ce qui signifie qu'il s'exécutera automatiquement au démarrage du système.

sudo systemctl status lighttpd

Si un pare-feu UFW est exécuté sur votre machine Ubuntu, vous devez ajouter les règles de pare-feu pour le trafic entrant sur le serveur Web Lighttpd.

Exécutez la commande ufw ci-dessous pour ajouter les règles Lighttpd au pare-feu UFW, vous pourrez ensuite vérifier et vérifier la liste des règles UFW comme ci-dessous.

sudo ufw allow "Lighttpd Full"
sudo ufw status

Vous devriez voir le profil d'application « Lighttpd Full » ajouté au pare-feu UFW, ce qui signifie que tous les ports HTTP et HTTPS entrants sont autorisés.

Vérifiez maintenant le répertoire "/var/www/html" à l'aide de la commande ci-dessous. Si vous ne voyez pas de fichier index.html, vous pouvez en créer un à l'aide de la commande ci-dessous.

ls -lah /var/www/html
echo "<h1><center>Welcome to Lighttpd Web Server</center></h1>" > /var/www/html/index.html

Enfin, ouvrez votre navigateur Web et visitez l'adresse IP du serveur (c'est-à-dire http://192.168.5.28/) et vous devriez voir la page index.html.

Installation du serveur MariaDB

Après avoir installé le serveur Web Lighthttpd, il est temps d'installer le serveur MariaDB sur le système Ubuntu. Cela inclut également comment déployer le serveur MariaDB en toute sécurité à l'aide de l'outil "mysql_secure_installation" fourni par le package MariaDB.

Exécutez la commande apt suivante pour installer le serveur MariaDB. Dans l'état actuel, le référentiel Ubuntu par défaut fournit MariaDB v10.6.

sudo apt install mariadb-server

Saisissez maintenant Y pour confirmer l'installation et appuyez sur ENTER. Et l'installation de MariaDB commencera.

Une fois l'installation de MariaDB terminée, exécutez la commande systemctl ci-dessous pour démarrer et activer le service MariaDB.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Vérifiez et vérifiez le service MariaDB à l'aide de la commande suivante. Et vous devriez voir le service MariaDB fonctionner.

sudo systemctl status mariadb

Ensuite, vous configurerez le déploiement de MariaDB à l'aide de l'outil « mysql_secure_instalaltion », qui peut vous aider à configurer le mot de passe root du serveur MariaDB, à désactiver la connexion root à distance, à nettoyer la base de données par défaut et l'accès des utilisateurs anonymes, etc.

Exécutez maintenant la commande "mysql_secure_installation" comme ci-dessous.

sudo mysql_secure_installation

L'installation par défaut de MariaDB est livrée sans mot de passe root. Appuyez sur ENTRÉE pour continuer.

Saisissez maintenant "n" pour conserver la méthode d'authentification par défaut (pour l'utilisateur root MariaDB).

Saisissez Y pour configurer le mot de passe root de votre serveur MariaDB. Assurez-vous d'utiliser un mot de passe fort pour votre déploiement.

Saisissez maintenant Y pour désactiver la connexion à distance pour l'utilisateur root MariaDB. Si vous n'êtes pas dans un environnement de cluster, il est toujours recommandé de désactiver la connexion à distance pour l'utilisateur root MariaDB.

Saisissez maintenant à nouveau Y pour supprimer l'utilisateur anonyme par défaut de votre installation MariaDB.

Saisissez à nouveau Y pour supprimer le test de base de données par défaut accessible par l'utilisateur anonyme sur MariaDB.

Enfin, saisissez à nouveau Y pour recharger tous les privilèges de table sur votre serveur MariaDB et appliquer les nouvelles modifications.

Installation de PHP-FPM 8.1

Vous avez maintenant installé le serveur Web Lighttpd et le serveur de base de données MariaDB. Vous allez maintenant installer PHP-FPM sur votre système Ubuntu. Dans l'état actuel, le référentiel Ubuntu fournit la dernière version de PHP 8.1.

Exécutez la commande apt ci-dessous pour installer PHP-FPM 8.1 sur votre système Ubuntu.

sudo apt install php-fpm php-common php-mysql php-cli php-curl php-xml

Saisissez Y pour confirmer l'installation et appuyez sur ENTER. Maintenant, l'installation va commencer.

Une fois l'installation des packages PHP-FPM terminée, exécutez la commande ci-dessous pour démarrer et activer le service PHP-FPM.

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

Vérifiez et vérifiez le service PHP-FPM à l'aide de la commande ci-dessous. Vous devriez voir que le service PHP-FPM est en cours d'exécution.

sudo systemctl status php8.1-fpm

Vous pouvez également vérifier le service PHP-FPM à l'aide de la commande "ss". Le processus PHP-FPM par défaut s'exécute sous le fichier sock et vous pouvez vérifier le processus PHP-FPM à l'aide de la commande ci-dessous.

ss -pl | grep php

Vous devriez exécuter le service PHP-FPM sur le fichier sock "/run/php/php8.1-fpm.sock".

Configuration de PHP-FPM avec Lighttpd

L'installation des packages LLMP Stack est terminée, mais vous devez encore configurer le serveur Web Lighttpd pour qu'il puisse fonctionner avec le service PHP-FPM. Et cela peut être fait en utilisant les modules FastCGI sur le serveur Web Lighttpd.

Tout d'abord, éditez le fichier de configuration PHP-FPM "/etc/php/8.1/fpm/php.ini" à l'aide de l'éditeur nano.

sudo nano /etc/php/8.1/fpm/php.ini

Ajoutez la configuration suivante au fichier.

cgi.fix_pathinfo = 1

Enregistrez et fermez le fichier lorsque vous avez terminé.

Redémarrez maintenant le service PHP-FPM à l'aide de la commande ci-dessous pour appliquer les nouvelles modifications.

sudo systemctl restart php8.1-fpm

Ensuite, exécutez la commande suivante pour activer les modules Lighttpd "fastcgi" et "fastcgi-php-fpm".

sudo lighty-enable-mod fastcgi fastcgi-php-fpm

Modifiez le fichier de configuration "/etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf" à l'aide de l'éditeur nano. Ce fichier est la configuration du module fastcgi-php-fpm qui sera utilisé pour communiquer avec le fichier sock PHP-FPM.

sudo nano /etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf

Modifiez le chemin de l'option socket en "/run/php/php8.1-fpm.sock" comme suit.

## Use PHP-FPM service for PHP via FastCGI
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/run/php/php8.1-fpm.sock",
                "broken-scriptfilename" => "enable"
        ))
)

Enregistrez et fermez le fichier lorsque vous avez terminé.

Enfin, exécutez la commande ci-dessous pour redémarrer le service Lighttpd et appliquer les nouvelles modifications. Votre pile LLMP est désormais prête à servir à la fois des applications Web HTML statiques et PHP dynamiques.

sudo systemctl restart lighttpd

Test de PHPinfo

Pour vérifier votre installation LLMP Stack, vous pouvez simplement créer le script PHPINFO qui vous montre la configuration détaillée des configurations Lighttpd et PHP-FPM.

Exécutez la commande ci-dessous pour créer un nouveau script PHP "/var/www/html/info.php" et remplacez la propriété par l'utilisateur "www-data".

echo "<?php phpinfo(); ?>" > /var/www/html/info.php
sudo chown -R www-data:www-data /var/www/html

Revenez à votre navigateur Web et visitez l'adresse IP du serveur Ubuntu suivie du chemin URL "/info.php" (http://192.168.5.28/info.php). Et vous devriez voir la page phpinfo détaillée dans la capture d'écran suivante. Cela signifie que la configuration de Lighttpd et PHP-FPM est terminée et réussie.

Configurer l'hôte virtuel sur Lighttpd

À ce stade, vous avez terminé l'installation et la configuration de la pile LLMP. La pile LLMP est également prête à serveur une application Web PHP dynamique via PHP-FPM. Vous allez maintenant apprendre comment configurer l'hôte virtuel sur le serveur Web Lighttpd. L'hôte virtuel vous permet d'exécuter plusieurs noms de domaine sur un seul serveur ou une seule adresse IP.

Exécutez maintenant la commande suivante pour créer un nouveau répertoire "/etc/lighttpd/vhosts". Ce répertoire sera utilisé pour stocker toutes les configurations d'hôtes virtuels du serveur Web Lighttpd.

sudo mkdir -p /etc/lighttpd/vhosts/

Modifiez maintenant le fichier de configuration Lighttpd "/etc/lighttpd/lighttpd.conf" à l'aide de l'éditeur nano.

sudo nano /etc/lighttpd/lighttpd.conf

Ajoutez la configuration suivante au fichier.

include "/etc/lighttpd/vhosts/*.conf"

Enregistrez et fermez le fichier lorsque vous avez terminé. Vous êtes maintenant prêt à configurer l'hôte virtuel Lighttpd.

Tout d’abord, créez le répertoire Document Root pour votre hôte virtuel. Dans cet exemple, le répertoire racine du document sera "/var/www/hwdomain".

mkdir -p /var/www/hwdomain/

Créez un nouveau fichier "index.html" dans le répertoire racine du document "/var/www/hwdomain" et remplacez la propriété par l'utilisateur correct "www-data".

echo "<h1><center>Welcome to hwdomain.io virtual host</center></h1>" > /var/www/hwdomain/index.html
sudo chown -R www-data:www-data /var/www/hwdomain

Ensuite, créez une nouvelle configuration d'hôte virtuel "/etc/lighttpd/vhosts/hwdomain.conf" à l'aide de l'éditeur nano.

sudo nano /etc/lighttpd/vhosts/hwdomain.conf

Ajoutez la configuration suivante au fichier. Dans cet exemple, le domaine « hwdomain.io » sera utilisé pour l'hôte virtuel.

$HTTP["host"] =~ "(^|.)hwdomain.io$" {
    server.document-root = "/var/www/hwdomain"
    server.errorlog = "/var/log/lighttpd/hwdomain.io-error.log"
    accesslog.filename = "/var/log/lighttpd/hwdomain.io-access.log"
}

Enregistrez et fermez le fichier lorsque vous avez terminé.

Après cela, exécutez la commande suivante pour vérifier et vérifier la configuration de Lighttpd. Si la configuration de Lighttpd est correcte, vous verrez le message de sortie tel que « Syntaxe OK ».

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf

Redémarrez maintenant le service Lighttpd pour appliquer la nouvelle configuration d'hôte virtuel à l'aide de la commande ci-dessous.

sudo systemctl restart lighttpd

Revenez à votre navigateur Web et saisissez votre nom de domaine dans la barre d'adresse (c'est-à-dire http://hwdomain.io/). Et vous devriez voir la page index.html par défaut pour cet hôte virtuel.

Activer HTTPS sur le serveur Web Lighttpd

Après avoir configuré l'hôte virtuel Lighthttpd, vous allez maintenant apprendre comment activer SSL/HTTPS sur le serveur Web Lighttpd.

Avant de commencer la configuration de SSL, exécutez la commande ci-dessous pour activer le module "ssl" pour le serveur Web Lighttpd. Cela créera un fichier de lien vers "/etc/lighttpd/conf-enabled/10-ssl.conf", qui contient la configuration SSL de base pour Lighttpd. Et également, vous devrez générer les certificats SSL pour localhost avec le nom "server.pem"

sudo lighty-enable mod ssl

Exécutez maintenant la commande ci-dessous pour créer et générer le certificat SSL pour localhost avec le nom "server.pem".

openssl req -new -newkey rsa:2048 -nodes -keyout server.com.key -out server.com.csr
openssl x509 -req -days 365 -in server.com.csr -signkey server.com.key -out server.com.crt
cat server.com.key server.com.crt > server.pem

Et maintenant vous êtes prêt à implémenter SSL/HTTPS sur la configuration de l'hôte virtuel "hwdomain.conf".

Avant de commencer à configurer le SSL pour l'hôte virtuel, assurez-vous d'avoir généré des certificats SSL pour votre nom de domaine. Dans cet exemple, le nom de domaine est « hwdomain.io » et les certificats SSL sont disponibles dans le répertoire « /etc/letsencrypt/live/hwdomain.io ».

Modifiez la configuration de l'hôte virtuel "/etc/lighttpd/vhosts/hwdomain.conf" à l'aide de l'éditeur nano.

sudo nano /etc/lighttpd/vhosts/hwdomain.conf

Remplacez la configuration que vous venez de créer par la configuration suivante.

$HTTP["scheme"] == "http" {
        $HTTP["host"] == "hwdomain.io" {
                url.redirect = ("/.*" => "https://hwdomain.io$0")
        }
}
$SERVER["socket"] == ":443" {
    ssl.engine = "enable"
    ssl.pemfile = "/etc/letsencrypt/live/hwdomain.io/fullchain.pem"
    ssl.privkey = "/etc/letsencrypt/live/hwdomain.io/privkey.pem"
    server.name = "hwdomain.io"
    server.document-root = "/var/www/hwdomain"
    server.errorlog = "/var/log/lighttpd/hwdomain.io-error.log"
    accesslog.filename = "/var/log/lighttpd/hwdomain.io-access.log"
}

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ensuite, exécutez la commande suivante pour vérifier la configuration du serveur Web Lighttpd et assurez-vous d'avoir reçu le message de sortie tel que « Syntaxe OK ». Après cela, vous pouvez redémarrer le service Lighttpd pour appliquer les nouvelles modifications.

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf
sudo systemctl restart lighttpd

Enfin, revenez à votre navigateur Web et visitez le nom de domaine de l'hôte virtuel avec https devant l'URL (c'est-à-dire https://hwdomain.io). Si votre configuration SSL réussit, vous verrez l'icône locale sur l'URL, comme indiqué dans la capture d'écran ci-dessous.

Conclusion

Félicitation ! Vous avez installé avec succès la pile LLMP (Linux, Lighttpd, MariaDB et PHP-FPM) sur le serveur Ubuntu 22.04. Vous avez également appris à configurer un hôte virtuel sur le serveur Web Lighttpd et à activer le SSL/HTTPS sur le Lighttpd pour votre nom de domaine.

Articles connexes: