Installation serveur · 9 min read · Oct 31, 2025

Installation de Lighttpd avec PHP 7 (PHP-FPM) et MySQL 5.7 sur Ubuntu 16.04 LTS

Lighttpd est un serveur web sécurisé, rapide et conforme aux normes, conçu pour des environnements critiques en termes de vitesse. Ce tutoriel montre comment installer Lighttpd sur un serveur Ubuntu 16.04 avec le support de PHP 7 (via PHP-FPM) et MySQL 5.7. PHP-FPM (FastCGI Process Manager) est une implémentation alternative de PHP FastCGI avec des fonctionnalités supplémentaires utiles pour des sites de toute taille, en particulier les sites plus fréquentés. J’utilise PHP-FPM dans ce tutoriel au lieu de spawn-fcgi de Lighttpd.

1 Remarque Préliminaire

Dans ce tutoriel, j’utilise le nom d’hôte server1.example.com avec l’adresse IP 192.168.1.100. Ces paramètres peuvent différer pour vous, donc vous devez les remplacer si nécessaire.

J’exécute toutes les étapes de ce tutoriel avec des privilèges root, donc assurez-vous d’être connecté en tant que root :

sudo -s

2 Installation de MySQL 5.7

Tout d’abord, nous installons MySQL comme ceci :

apt-get -y install mysql-server mysql-client

On vous demandera de fournir un mot de passe pour l’utilisateur root de MySQL - ce mot de passe est valide pour l’utilisateur root@localhost ainsi que [email protected], donc nous n’avons pas besoin de spécifier un mot de passe root MySQL manuellement plus tard :

Nouveau mot de passe pour l’utilisateur MySQL “root” : <– votremotdepassemysqlroot
Répétez le mot de passe pour l’utilisateur MySQL “root” : <– votremotdepassemysqlroot

Tapez le mot de passe MySQL.

L’installateur a défini un mot de passe root MySQL, mais il y a d’autres paramètres qui devraient être modifiés pour une installation MySQL sécurisée. Cela peut être fait avec la commande mysql_secure_installation.

mysql_secure_installation

La commande est interactive :

root@server1:~# mysql_secure_installation
Sécurisation du déploiement du serveur MySQL.
Entrez le mot de passe pour l'utilisateur root : <-- Entrez le mot de passe root MySQL
VALIDATE PASSWORD PLUGIN peut être utilisé pour tester les mots de passe  
et améliorer la sécurité. Il vérifie la force du mot de passe  
et permet aux utilisateurs de définir uniquement les mots de passe qui sont  
suffisamment sécurisés. Souhaitez-vous configurer le plugin VALIDATE PASSWORD ?
Appuyez sur y|Y pour Oui, toute autre touche pour Non : <-- Appuyez sur y si vous voulez cette fonction ou appuyez sur Entrée sinon.  
Utilisation du mot de passe existant pour root.  
Changer le mot de passe pour root ? ((Appuyez sur y|Y pour Oui, toute autre touche pour Non) : <-- Appuyez sur entrer
... en cours de saut.  
Par défaut, une installation MySQL a un utilisateur anonyme,  
permettant à quiconque de se connecter à MySQL sans avoir à  
avoir un compte utilisateur créé pour eux. Cela est uniquement destiné à  
la phase de test, et pour rendre l'installation un peu plus fluide.  
Vous devriez les supprimer avant de passer à un environnement de production.
Supprimer les utilisateurs anonymes ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : <-- y  
Succès.

Normalement, root ne devrait être autorisé à se connecter que depuis  
'localhost'. Cela garantit que quelqu'un ne peut pas deviner le  
mot de passe root depuis le réseau.
Interdire la connexion root à distance ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : <-- y  
Succès.
Par défaut, MySQL est livré avec une base de données nommée 'test' que  
quiconque peut accéder. Cela est également destiné uniquement à des fins de test,  
et devrait être supprimé avant de passer à un environnement de production.

Supprimer la base de données de test et l'accès à celle-ci ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : <-- y  
- Suppression de la base de données de test...  
Succès.
- Suppression des privilèges sur la base de données de test...  
Succès.
Recharger les tables de privilèges garantira que tous les changements  
faits jusqu'à présent prendront effet immédiatement.
Recharger les tables de privilèges maintenant ? (Appuyez sur y|Y pour Oui, toute autre touche pour Non) : <-- y  
Succès.
Tout est fait !

3 Installation de Lighttpd

Lighttpd est disponible en tant que package Ubuntu. Par conséquent, nous pouvons l’installer directement avec apt depuis le dépôt de packages Ubuntu Xenial Xerus :

apt-get -y install lighttpd

Maintenant, dirigez votre navigateur vers http://192.168.1.100/, et vous devriez voir la page de placeholder de Lighttpd :

La page par défaut de Lighttpd sur Ubuntu.

Le document root par défaut de Lighttpd est /var/www/html sur Ubuntu, et le fichier de configuration est /etc/lighttpd/lighttpd.conf. Des configurations supplémentaires sont stockées dans des fichiers dans le répertoire /etc/lighttpd/conf-available - ces configurations peuvent être activées avec la commande lighttpd-enable-mod qui crée un lien symbolique du répertoire /etc/lighttpd/conf-enabled vers le fichier de configuration approprié dans /etc/lighttpd/conf-available. Vous pouvez désactiver des configurations avec la commande lighttpd-disable-mod.

4 Installation de PHP 7.0

Nous pouvons faire fonctionner PHP dans Lighttpd via PHP-FPM que nous installons comme ceci :

apt-get -y install php7.0-fpm php7.0

PHP-FPM est un processus daemon (avec le script d’initialisation php5-fpm) qui exécute un serveur FastCGI sur le socket /var/run/php/php7.0-fpm.sock.

5 Configuration de Lighttpd et PHP 7.0

Pour activer PHP dans Lighttpd, nous devons modifier /etc/php/7.0/fpm/php.ini et décommenter la ligne cgi.fix_pathinfo=1 :

nano /etc/php/7.0/fpm/php.ini
[...]
; cgi.fix_pathinfo fournit un support *réel* pour PATH_INFO/PATH_TRANSLATED pour CGI. PHP's
; le comportement précédent était de définir PATH_TRANSLATED sur SCRIPT_FILENAME, et de ne pas comprendre
; ce qu'est PATH_INFO. Pour plus d'informations sur PATH_INFO, voir les spécifications CGI. Définir
; cela à 1 fera en sorte que PHP CGI corrige ses chemins pour se conformer à la spécification. Un paramètre
; de zéro fait que PHP se comporte comme auparavant. La valeur par défaut est 1. Vous devriez corriger vos scripts
; pour utiliser SCRIPT_FILENAME plutôt que PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]

Le fichier de configuration Lighttpd pour PHP /etc/lighttpd/conf-available/15-fastcgi-php.conf est adapté à une utilisation avec spawn-fcgi, cependant, nous voulons utiliser PHP-FPM, donc nous créons une sauvegarde du fichier (nommée 15-fastcgi-php.conf.bak) et modifions 15-fastcgi-php.conf comme suit :

cd /etc/lighttpd/conf-available/  
cp 15-fastcgi-php.conf 15-fastcgi-php.conf.bak  
nano 15-fastcgi-php.conf
# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Démarrer un serveur FastCGI pour php (nécessite le package php7.0-cgi)
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/var/run/php/php7.0-fpm.sock",
                "broken-scriptfilename" => "enable"
        ))
)

Pour activer la configuration fastcgi, exécutez les commandes suivantes :

lighttpd-enable-mod fastcgi  
lighttpd-enable-mod fastcgi-php

Cela crée les liens symboliques /etc/lighttpd/conf-enabled/10-fastcgi.conf qui pointe vers /etc/lighttpd/conf-available/10-fastcgi.conf et /etc/lighttpd/conf-enabled/15-fastcgi-php.conf qui pointe vers /etc/lighttpd/conf-available/15-fastcgi-php.conf :

ls -l /etc/lighttpd/conf-enabled
root@server1:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled  
total 0  
lrwxrwxrwx 1 root root 33 Apr 27 11:26 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf  
lrwxrwxrwx 1 root root 37 Apr 27 11:26 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf  
lrwxrwxrwx 1 root root 42 Apr 21 11:10 90-javascript-alias.conf -> ../conf-available/90-javascript-alias.conf  
root@server1:/etc/lighttpd/conf-available#

Ensuite, nous rechargeons Lighttpd :

service lighttpd force-reload

Remarque : Si vous obtenez des erreurs de locale, vous pouvez supprimer l’erreur en utilisant

apt-get -y install language-pack-en-base   
dpkg-reconfigure locales

6 Test de PHP 7.0 / Obtenir des détails sur votre installation PHP

Le document root du site web par défaut est /var/www/html. Nous allons maintenant créer un petit fichier PHP (info.php) dans ce répertoire et l’appeler dans un navigateur. Le fichier affichera de nombreux détails utiles sur notre installation PHP, tels que la version de PHP installée.

nano /var/www/html/info.php

Maintenant, nous appelons ce fichier dans un navigateur (par exemple http://192.168.1.100/info.php) :

Informations PHP sur lighttpd.

Comme vous le voyez, PHP 7.0 fonctionne, et il fonctionne via FPM/FastCGI, comme indiqué dans la ligne Server API. Si vous faites défiler plus bas, vous verrez tous les modules qui sont déjà activés dans PHP5. MySQL n’y est pas listé, ce qui signifie que nous n’avons pas encore de support MySQL dans PHP.

7 Obtenir le support MySQL dans PHP

Pour obtenir le support MySQL dans PHP, nous pouvons installer le package php7.0-mysql. Il est également judicieux d’installer d’autres modules PHP car vous pourriez en avoir besoin pour vos applications. Vous pouvez rechercher les modules PHP disponibles comme ceci :

apt-cache search php7.0

Choisissez ceux dont vous avez besoin et installez-les comme ceci :

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache  php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext

APCu est une extension pour le module Opcache de PHP qui est livré avec PHP 7, elle ajoute certaines fonctionnalités de compatibilité pour les logiciels qui prennent en charge le cache APC (par exemple, les plugins de cache Wordpress).

APCu peut être installé comme suit :

apt-get -y install php-apcu

Maintenant, rechargez PHP-FPM :

service php7.0-fpm reload

Maintenant, rechargez http://192.168.1.100/info.php dans votre navigateur et faites défiler à nouveau jusqu’à la section des modules. Vous devriez maintenant trouver de nombreux nouveaux modules là-bas, y compris le module mysqli et mysqlnd :

8 phpMyAdmin

phpMyAdmin est une interface web à travers laquelle vous pouvez gérer vos bases de données MySQL. Il est judicieux de l’installer :

apt-get -y install phpmyadmin

Vous verrez les questions suivantes :

Serveur web à reconfigurer automatiquement : <-- lighttpd  
Configurer la base de données pour phpmyadmin avec dbconfig-common ? <-- Oui  
Mot de passe d'application MySQL pour phpmyadmin : <-- Appuyez sur Entrée

Si vous obtenez l’erreur suivante :

Exécutez /etc/init.d/lighttpd force-reload pour activer les changements  
dpkg: erreur lors du traitement du package phpmyadmin (--configure) :  
sous-processus installé script de post-installation retourné le statut d'erreur 2  
E: Sous-processus /usr/bin/dpkg a retourné un code d'erreur (1)

Alors exécutez ces commandes :

/etc/init.d/lighttpd force-reload  
apt-get -y install phpmyadmin

Ensuite, vous pouvez accéder à phpMyAdmin sous http://192.168.1.100/phpmyadmin/ :

9 Faire en sorte que PHP-FPM utilise une connexion TCP (Optionnel)

Par défaut, PHP-FPM écoute sur le socket /var/run/php/php7.0-fpm.sock. Il est également possible de faire en sorte que PHP-FPM utilise une connexion TCP. Pour ce faire, ouvrez /etc/php/7.0/fpm/pool.d/www.conf…

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

… et faites en sorte que la ligne listen ressemble à ceci :

[...]
;listen = /var/run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000
[...]

Cela fera en sorte que PHP-FPM écoute sur le port 9000 sur l’IP 127.0.0.1 (localhost). Assurez-vous d’utiliser un port qui n’est pas utilisé sur votre système.

Ensuite, rechargez PHP-FPM :

service php7.0-fpm reload

Ensuite, ouvrez le fichier de configuration PHP de Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf et remplacez la ligne socket par les lignes host et port :

nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Démarrer un serveur FastCGI pour php (nécessite le package php7.0-cgi)
fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Enfin, rechargez Lighttpd :

service lighttpd force-reload

10 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.