GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Lighttpd avec PHP, MariaDB et Lets Encrypt SSL sur Debian 10

Lighttpd est un serveur Web gratuit, open-source et haut débit spécialement conçu pour les environnements à vitesse critique. Il nécessite une faible empreinte mémoire par rapport à d'autres serveurs Web, tels qu'Apache et Nginx, et est particulièrement rapide pour exécuter des applications AJAX. Lighttpd nous permet également d'héberger des applications Web écrites dans d'autres langages de programmation à l'aide des interfaces FastCGI, SCGI et CGI. Lighttpd est le meilleur choix pour vous si votre serveur souffre de problèmes de charge.

Dans ce tutoriel, nous apprendrons comment installer Lighttpd sur Debian 10 avec le support PHP-FPM et MariaDB et nous sécuriserons le serveur Web avec un certificat SSL Let's Encrypt.

Exigences

  • Un serveur exécutant Debian 10.
  • Un mot de passe root est configuré sur votre serveur.

J'utiliserai le nom de domaine example.com dans ce tutoriel. Remplacez example.com dans tous les noms de fichiers et paramètres de configuration par votre propre nom de domaine ci-dessous.

Mise en route

Avant de commencer, vous devrez mettre à jour votre système avec la dernière version. Vous pouvez le faire en exécutant la commande suivante :

apt-get update -y
apt-get upgrade -y

Une fois votre serveur mis à jour, redémarrez votre serveur pour appliquer les modifications.

Installer Lighttpd

Par défaut, Lighttpd est disponible dans le dépôt par défaut de Debian 10. Vous pouvez l'installer en exécutant simplement la commande suivante :

apt-get install lighttpd -y

Une fois l'installation terminée, démarrez le service Lighttpd et autorisez-le à démarrer après le redémarrage du système avec la commande suivante :

systemctl start lighttpd
systemctl enable lighttpd

Vous pouvez également vérifier l'état de Lighttpd avec la commande suivante :

systemctl status lighttpd

Vous devriez obtenir le résultat suivant :

? lighttpd.service - Lighttpd Daemon
   Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-09-06 02:09:35 EDT; 29s ago
 Main PID: 4445 (lighttpd)
    Tasks: 1 (limit: 1138)
   Memory: 1.4M
   CGroup: /system.slice/lighttpd.service
           ??4445 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf

Sep 06 02:09:35 debian systemd[1]: Starting Lighttpd Daemon...
Sep 06 02:09:35 debian systemd[1]: Started Lighttpd Daemon.
Sep 06 02:09:36 debian systemd[1]: /lib/systemd/system/lighttpd.service:6: PIDFile= references path below legacy directory /var/run/, updating 
lines 1-12/12 (END)

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Installer le serveur MariaDB

Vous pouvez installer le serveur MariaDB en exécutant la commande suivante :

apt-get install mariadb-server mariadb-client -y

Une fois installé, vous devrez sécuriser l'installation de MariaDB. Vous pouvez le sécuriser en exécutant le script suivant :

mysql_secure_installation
Answer all the questions as shown below:
Change the root password? [Y/n] n
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

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Installer PHP et PHP-FPM

Ensuite, vous devrez installer PHP, PHP-FPM et FastCGI sur votre système. Par défaut, Debian 10 est livré avec PHP version 7.3. Vous pouvez l'installer en exécutant simplement la commande suivante :

apt-get install php php-cgi php-fpm php-mysql -y

Une fois tous les packages installés, vous devrez éditer le fichier php.ini et définir cgi.fix_pathinfo sur 1. Vous pouvez le faire avec la commande suivante :

nano /etc/php/7.3/fpm/php.ini

Modifiez la ligne suivante :

cgi.fix_pathinfo=1

Enregistrez et fermez le fichier lorsque vous avez terminé.

Par défaut, PHP pointe vers le socket UNIX /var/run/php/php7.3-fpm.sock. Vous devrez donc configurer le pool PHP-FPM pour que PHP écoute le socket TCP.

Vous pouvez le faire en éditant le fichier /etc/php/7.3/fpm/pool.d/www.conf :

nano /etc/php/7.3/fpm/pool.d/www.conf

Recherchez la ligne suivante :

listen = /run/php/php7.3-fpm.sock

Et remplacez-le par la ligne suivante :

listen = 127.0.0.1:9000

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service PHP-FPM pour appliquer les modifications de configuration :

systemctl restart php7.3-fpm

Ensuite, vous devrez modifier le fichier 15-fastcgi-php.conf :

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

Recherchez les lignes suivantes :

"bin-path" => "/usr/bin/php-cgi",
"socket" => "/var/run/lighttpd/php.socket",

Et remplacez-les par ce qui suit :

"host" => "127.0.0.1",
"port" => "9000",

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, activez les modules FastCGI et FastCHI-PHP avec les commandes suivantes :

lighty-enable-mod fastcgi
lighty-enable-mod fastcgi-php

Enfin, redémarrez le service Lighttpd pour appliquer les modifications :

systemctl restart lighttpd

Créer un hôte virtuel Lighttpd

Ensuite, vous devrez créer un nouveau fichier d'hôte virtuel pour tester PHP avec Lighttpd. Vous pouvez le créer avec la commande suivante :

nano /etc/lighttpd/conf-available/example.com.conf

Ajoutez les lignes suivantes :

$HTTP["host"] == "www.example.com" {
    server.document-root = "/var/www/html/"
    server.errorlog      = "/var/log/lighttpd/example.com-error.log"
}

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, activez l'hôte virtuel avec la commande suivante :

ln -s /etc/lighttpd/conf-available/example.com.conf /etc/lighttpd/conf-enabled/

Ensuite, créez un exemple de fichier index.php dans le répertoire racine du document Lighttpd avec la commande suivante :

nano /var/www/html/index.php

Ajoutez la ligne suivante :

<?php phpinfo(); ?>

Enregistrez et fermez le fichier. Ensuite, changez la propriété du répertoire racine du document Lighttpd en www-data avec la commande suivante :

chown -R www-data:www-data /var/www/html/

Enfin, redémarrez le service Lighttpd pour appliquer toutes les modifications de configuration :

systemctl restart lighttpd

Sécuriser Lighttpd avec Let's Encrypt SSL gratuit

Tout d'abord, vous devrez installer l'outil Certbot pour sécuriser votre serveur Web avec Let's Encrypt. Par défaut, la dernière version de Certbot n'est pas disponible dans le référentiel par défaut de Debian 10.

Vous pouvez ajouter le référentiel Certbot avec la commande suivante :

apt-get install software-properties-common
add-apt-repository ppa:certbot/certbot

Ensuite, mettez à jour le référentiel et installez Certbot avec la commande suivante :

apt-get update -y
apt-get install certbot -y

Ensuite, créez un certificat Let's Encrypt avec la commande suivante :

certbot certonly --webroot -w /var/www/html/ -d www.example.com

Il vous sera demandé de fournir votre adresse e-mail et d'accepter la durée de la licence comme indiqué ci-dessous :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Une fois les certificats téléchargés avec succès, vous devriez voir le résultat suivant :

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2019-12-06. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Ensuite, vous devrez combiner le certificat et la clé privée dans un seul fichier. Vous pouvez le faire avec la commande suivante :

cat /etc/letsencrypt/live/example.com/cert.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/letsencrypt/live/example.com/web.pem

Ensuite, vous devrez modifier le fichier d'hôte virtuel Lighttpd et définir le chemin du certificat SSL Let's Encrypt.

Vous pouvez le faire avec la commande suivante :

nano /etc/lighttpd/conf-enabled/example.com.conf

Modifiez le fichier comme indiqué ci-dessous :

$HTTP["host"] == "www.example.com" {
    server.document-root = "/var/www/html/"
}

$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/letsencrypt/live/example.com/web.pem" # Combined Certificate
ssl.ca-file = "/etc/letsencrypt/live/example.com/chain.pem" # Root CA
server.name = "www.example.com" # Domain Name OR Virtual Host Name
server.document-root = "/var/www/html/" # Document Root
server.errorlog = "/var/log/lighttpd/example.com_error.log"
accesslog.filename = "/var/log/lighttpd/example.com_access.log"
}

$HTTP["scheme"] == "http" {
$HTTP["host"] == "www.example.com" { # HTTP URL
url.redirect = ("/.*" => "https://www.example.com$0") # Redirection HTTPS URL
}
}

Enregistrez et fermez le fichier. Redémarrez ensuite le service Lighttpd pour appliquer les modifications de configuration :

systemctl restart lighttpd

Accéder à l'interface Web Lighttpd

Lighttpd est installé et configuré avec le support PHP et PHP-FPM. Maintenant, il est temps de le tester.

Ouvrez votre navigateur Web et saisissez l'URL https://www.example.com. Vous serez redirigé vers la page suivante :

La page ci-dessus indique que PHP fonctionne bien avec FastCGI.

Conclusion

Toutes nos félicitations! vous avez installé et configuré avec succès le serveur Web Lighttpd avec la prise en charge de PHP-FPM et FastCGI sur Debian 10. Vous pouvez désormais héberger facilement votre propre serveur Web. Pour plus d'informations, visitez la page de documentation officielle de Lighttpd sur Lighttpd Doc.


Debian
  1. Installer Automad CMS avec Nginx et Lets Encrypt SSL sur Debian 10

  2. Comment installer Tiki Wiki avec Apache et permet de chiffrer SSL sur Debian 10

  3. Comment installer Automad CMS avec Apache et Lets encrypt sur Debian 10

  4. Comment installer ElkArte Forum avec Apache et Lets Encrypt sur Debian 10

  5. Comment installer OpenCart avec Nginx et Lets Encrypt sur Debian 10

Comment installer Etherpad avec Nginx et SSL sur Debian 11

Comment installer Shopware avec NGINX et Lets encrypt sur Debian 9

Comment installer MyBB Forum avec Nginx et Lets Encrypt sur Debian 10

Comment installer Wekan Kanban avec Nginx et Lets Encrypt SSL sur Debian 10

Installer Lighttpd avec PHP FPM et MariaDB (LLMP) sur Debian 9

Comment installer Lighttpd avec PHP et MariaDB sur Ubuntu 15.04