Installation serveur · 7 min read · Dec 18, 2025

Installation de Lighttpd avec PHP5 (PHP-FPM) et MySQL sur Debian 8 (Jessie)

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 Debian 8 (Jessie) avec le support de PHP5 (via PHP-FPM) et le support de MySQL. 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 là où cela est approprié. Utilisez un serveur Debian minimal comme base pour cette installation, cela peut être soit une image minimale de votre datacenter, soit vous l’installez à partir de zéro en utilisant notre tutoriel sur le serveur minimal Debian.

2 Installation de MySQL / MariaDB

Debian 8 est livré avec 2 bases de données compatibles MySQL, la base de données MySQL traditionnelle et MariaDB, un fork de MySQL maintenu par l’inventeur original de MySQL, Monty Widenius. MariaDB est en tête en termes de vitesse de base de données et d’activité de développement en ce moment, donc je vais la choisir pour mon serveur.

Ci-dessous, je vais décrire l’installation de MariaDB (Chapitre 2.1) et de MySQL (Chapitre 2.2) afin que vous puissiez choisir la base de données que vous préférez. Assurez-vous simplement de suivre soit le chapitre 2.1 soit le 2.2 mais pas les deux.

2.1 Installer MariaDB

Pour installer MariaDB, exécutez cette commande.

apt-get install mariadb-server mariadb-client

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

New password for the MariaDB "root" user: <-- votremotdepasse Repeat password for the MariaDB "root" user: <-- votremotdepasse

2.2 Installer MySQL

Nous installons MySQL 5 comme ceci :

apt-get 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 pour [email protected], donc nous n’avons pas à spécifier manuellement un mot de passe root de MySQL plus tard :

New password for the MySQL “root” user: <– votremotdepasse Repeat password for the MySQL “root” user: <– votremotdepasse

3 Installation de Lighttpd

Lighttpd est disponible en tant que paquet Debian, donc nous pouvons l’installer comme ceci :

apt-get install lighttpd

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

Le répertoire racine par défaut de Lighttpd est /var/www sur Debian, 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 PHP5

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

apt-get install php5-fpm php5

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

5 Configuration de Lighttpd et PHP5

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

nano /etc/php5/fpm/php.ini

[...] ; cgi.fix_pathinfo fournit un support *réel* pour PATH_INFO/PATH_TRANSLATED pour CGI. Le comportement précédent de PHP é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 réglage de zéro fait que PHP se comporte comme avant. 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 [...]

Et redémarrez le service php5-fpm pour appliquer le changement de configuration :

systemctl restart php5-fpm.service

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

cd /etc/lighttpd/conf-available/ cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf nano 15-fastcgi-php.conf

# -*- depends: fastcgi -*- # /usr/share/doc/lighttpd/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 paquet php5-cgi) fastcgi.server += ( ".php" => (( "socket" => "/var/run/php5-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 Aug 11 08:20 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf lrwxrwxrwx 1 root root 37 Aug 11 08:20 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

Ensuite, nous rechargeons Lighttpd :

systemctl force-reload lighttpd.service

6 Tester PHP5 / Obtenir des détails sur votre installation PHP5

Le répertoire racine du site web par défaut est /var/www. 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) :

PHPInfo pour php-fpm sur lighttpd.

Comme vous le voyez, PHP5 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’est pas listé là, ce qui signifie que nous n’avons pas encore de support MySQL dans PHP5.

7 Obtenir le support MySQL dans PHP5

Pour obtenir le support MySQL dans PHP, nous pouvons installer le paquet php5-mysqlnd. C’est un nouveau pilote de base de données qui est compatible avec MySQL et MariaDB. Il est judicieux d’installer quelques autres modules PHP5 également car vous pourriez en avoir besoin pour vos applications. Vous pouvez rechercher les modules PHP5 disponibles comme ceci :

apt-cache search php5

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

apt-get install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Xcache est un cache d’opcode PHP gratuit et open source pour mettre en cache et optimiser le code intermédiaire PHP. Il est similaire à d’autres caches d’opcode PHP, tels que eAccelerator et APC. Il est fortement recommandé d’en avoir un installé pour accélérer votre page PHP.

Xcache peut être installé comme suit :

apt-get install php5-xcache

Maintenant, rechargez PHP-FPM :

systemctl restart php5-fpm.service

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

Pilote MySQL affiché dans la sortie de phpinfo().

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 install phpmyadmin

Vous verrez les questions suivantes :

Serveur web à reconfigurer automatiquement : <– lighttpd

apt phpmyadmin lighttpd selector.

Configurer la base de données pour phpmyadmin avec dbconfig-common ? <-- Oui Mot de passe de l'utilisateur administratif de la base de données : <-- votremotdepasse Mot de passe de l'application MySQL pour phpmyadmin : <-- Appuyez sur

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

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

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

nano /etc/php5/fpm/pool.d/www.conf

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

[...] ;listen = /var/run/php5-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 :

systemctl restart php5-fpm.service

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

# -*- depends: fastcgi -*- # /usr/share/doc/lighttpd/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 paquet php5-cgi) fastcgi.server += ( ".php" => (( "host" => "127.0.0.1", "port" => "9000", "broken-scriptfilename" => "enable" )) )

Enfin, rechargez Lighttpd :

systemctl force-reload lighttpd.service

10 Liens

Share: X/Twitter LinkedIn

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

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