:::: MENU ::::

Installation d’un serveur WEB Lighttpd + PHP + MySQL

Durant ce tutoriel, vous allez découvrir comment installer et configurer un serveur web sur votre Raspberry Pi (que j’appellerais RPi tout au long de cet article). Celui-ci va vous permettre d’héberger tout vos projets web sur votre RPi. Simple à mettre en place, ce serveur web va servir de base dans de nombreux projets qui nécessitent un retour graphique (monitoring, contrôle à distance…).

Tout d’abord, il vous faut un RPi déjà configuré et prêt à fonctionner. Si ce n’est pas le cas, reportez-vous à ces tutoriels : Création de la carte SD de démarrage & Connexion au RPi en SSH.

Prérequis

Connectez-vous donc en SSH à votre RPi. Une fois votre terminal ouvert, commencez par mettre à jour la liste des packages et mettez à jour votre RPi.

sudo apt-get update
sudo apt-get upgrade

Une fois ces deux étapes terminées, nous allons pouvoir commencer l’installation du serveur Web.

Lighttpd

Lighttpd (prononcé « Lighty ») est une alternative efficace à Apache. Ses principaux avantages de son exploitation sur le RPi sont sa rapidité et sa flexibilité.

Commencez par installer Lighty via le gestionnaire de paquets :

sudo apt-get install lighttpd

Une fois l’installation terminée, vous pouvez retrouver les fichiers de configuration dans le répertoire /etc/lighttpd.

  • lighttpd.conf et le fichier de configuration principale dans lequel sont chargées les instructions principales.
  • conf-available est un répertoire contenant les fichiers de configurations des modules installés sur le serveur.
  • conf-enabled est le dossier contenant les fichiers des modules activés.

Dans le premier des 3 fichiers cités au-dessus, lighttpd.conf, vous allez retrouver ces configurations :

server.modules = {
    "mod_access",
    "mod_alias",
    "mod_compress",
    "mod_redirect",
#   "mod_rewrite",
}

server.document-root         = "/var/www"
server.upload-dirs           = { "/var/cache/lighttpd/uploads" }
server.errorlog              = "/var/log/lighttpd/error.log"
server.pid-file              = "/var/run/lighttpd.pid"
server.username              = "www-data"
server.groupname             = "www-data"
server.port                  = 80

index-file.names             = { "index.php", "index.html", "index.lighttpd.html" }
url.access-deny              = { "~", ".inc" }
static-file.exclude-extensions = { ".php", ".pi", ".fcgi" }

compress.cache-dir           = "/var/cache/lighttpd/compress/"
compress.filetype            = { "application/javascript", "text/css", "text/html", "text/plain" }

# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

Les premières lignes (lignes 1 à 7) permettent d’identifier les modules activés sur le serveur. Comme vous pouvez le voir, par défaut, le module mod_rewrite est désactivé (Celui-ci permet entre autres de faire de la réécriture d’URL).
Nous ne nous attardons pas plus sur ces lignes car nous activerons nos modules par le biais de commandes par la suite.

Ensuite, vous pouvez voir la configuration des répertoires et fichiers utilisés par Lighty(lignes 9 à 15).
Voici quelques configurations de base que vous pouvez modifier pour utiliser Lighty à votre guise :

  • server.document-root : Cette ligne permet de choisir le répertoire dans lequel Lighty ira chercher vos pages. Par défaut, Lighty charge les fichiers contenus dans le répertoire /var/www. Si vous souhaitez changer de répertoire, pensez à le créer manuellement et à copier dedans les fichiers contenus dans /var/www avant de redémarrer le serveur après modification sur fichier de configuration.
  • server.upload-dirs : Cette option définit les répertoires dans lesquels seront envoyés les fichiers envoyés depuis un de vos sites (via un formulaire d’upload de fichiers). Si vous souhaitez modifier ce répertoire, comme pour le document-root, pensez à créer le dossier avec de redémarrer le serveur.
  • server.port : Modifier cette ligne vous permet de changer le port d’écoute de votre serveur. Par défaut le serveur écoute sur le port 80.

Pour les autres options du fichier de configuration, vous pouvez toujours retrouver la documentation sur internet. Ces réglages sont ceux intéressants à connaitre pour commencer.
Personnellement, et tout au long de ce tutoriel, je laisse la configuration par défaut.

Maintenant que vous avez configuré votre serveur, vous devez le redémarrer pour que les changements soient pris en compte :

sudo service lighttpd restart

Vous pouvez maintenant ouvrir votre navigateur favori, et entrer l’adresse IP de votre RPi (un petit ifconfig peut vous aider si vous ne la connaissez pas).

Premier Accès à Lighty

Si vous n’obtenez pas ce résultat, vérifiez les configurations du serveur et redémarrez-le.

Maintenant que nous avons un serveur HTTP en place et fonctionnel, nous allons pouvoir passer à la suite : L’installation de l’interpréteur PHP.

PHP

Nous allons donc maintenant installer PHP5 et configurer Lighty pour qu’il puisse l’utiliser et interpréter le code PHP de vos pages.

Les paquets à installer sont les suivants : php5-cgi (et si vous souhaitez utiliser la librairie graphique de PHP : php5-gd).

sudo apt-get install php5-cgi php5-gd

Une fois l’installation terminée, il nous faut configurer Lighty pour fonctionner avec PHP5 et de redémarrer le serveur. Pour ça, il suffit d’exécuter les commandes suivantes :

sudo lighty-enable-mod fastcgi
sudo lighty-enable-mod fastcgi-php
sudo service lighttpd restart

Le serveur est maintenant prêt à exécuter du code PHP, nous allons vérifier ça avec le petit test suivant : nous allons créer un fichier info.php qui affiche la configuration du serveur.

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

Pensez à remplacer /var/www par le chemin que vous avez indiqué dans le fichier de configuration (Le chemin du dossier racine de votre serveur).

Vous pouvez ensuite rouvrir votre navigateur pour afficher la page créée : http://votre_adresse_ip/info.php. (Si vous avez changé le port d’écoute du serveur Lighty, n’oubliez pas de l’ajouter à la suite de votre adresse IP de la manière suivante « http://votre_adresse_ip:votre_port_d_ecoute/info.php« ).

Php Info

Si vous obtenez cette page, c’est bon, sinon vérifiez les droits d’accès à votre document-root.

MySQL

Pour terminer ce tutoriel, nous allons installer MySQL et PhpMyAdmin. Ces outils permettent de créer et administrer des bases de données MySQL.
Pour ce faire, nous avons besoin des paquets suivants : mysql-client, mysql-server, php5-mysql et phpmyadmin.

sudo apt-get install mysql-client mysql-server php5-mysql phpmyadmin

Durant l’installation, plusieurs écrans de configurations vont s’ouvrir.
Le premier vous demande le mot de passe administrateur pour MySQL.

Configuration de MySQL

Ensuite, l’installeur vous demande le serveur WEB à configurer. Dans notre cas, sélectionné lighttpd.

Écran de sélection du serveur à configurer

Puis, installez la base de données pré-configuré.

Installation de la BDD pré-configurée

Pour finir, l’installeur de PhpMyAdmin vous demande le mot de passe administrateur que vous avez renseigné un peu plus tôt, puis le mot de passe utilisateur pour PhpMyAdmin.

 

Écran de connexion à la base de données 
 

Une dernière étape et c’est fini ! Démarrez le démon MySQL et redémarrez votre serveur Lighty.

sudo service mysql start
sudo service lighttpd restart

L’installation est maintenant terminée, nous allons vérifier le fonctionnement de notre installation. Ouvrez de nouveau votre navigateur, et rendez-vous à cette adresse : http://votre_adresse_ip/phpmyadmin/

Écran d'accueil de phpMyAdmin

Voici l’interface de connexion de phpMyAdmin.

Voilà ! Vous avez installé un serveur Web sur votre RPi. Vous pouvez dès à présent utiliser votre RPi en serveur de développement et vous familiariser au fonctionnement de Lighty.

A propos de l'auteur :

Ingénieur .NET chez Econocom, diplômé Manager des Systèmes d'Information par l'Exia.Cesi. Je m'intéresse au Raspberry Pi depuis sa sortie et travaille avec depuis une expérience "Raspbienne" en entreprise. Je développe sur ce micro-ordinateur essentiellement pour des projets personnels en utilisation standard ou embarquée.


4 Comments

  • Répondre Gautier |

    Bonjour,

    Je ne sais pas si cela est dù a un problème de ma part au niveau de l’installation.

    J’ai eu une erreur 404 – Not found due au fait que le dossier « http://ip-raspberry/phpmyadmin/ » n’existait pas.

    Il se trouvait dans /usr/share/

    Voici donc la commande pour ceux qui ont le meme problème que moi.

    mv /usr/share/phpmyadmin /var/www/

    J’espère que c’est la bonne commande étant donné que j’ai déplacé le dossier via WinSCP

    • Répondre Vincent |

      Bonjour,

      Je pense deviner d’où vient le problème. Il est possible que vous ayez manqué l’étape de sélection du serveur web à l’installation de PhpMyAdmin.
      Ceci dit, le problème n’est pas très grave dans l’absolu. Seulement, je vous conseille de modifier ce que vous avez fait :
      A savoir, replacer le répertoire phpmyadmin dans /usr/share à l’aide de la commande mv -R /var/www/phpmyadmin /usr/share/ et ensuite de créer un lien symbolique vers ce répertoire ln -s /usr/share/phpmyadmin /var/www/phpmyadmin. Ainsi, les mises à jour du paquet phpmyadmin seront toujours possibles.

      Si vous avez d’autres questions n’hésitez pas à revenir vers nous 😉

      Bonne journée,
      FriZBy

  • Répondre dom services |

    Merci pour ce tuto, je vais installer ce serveur web sur mon netbook dans un premier temps.
    Ce tutoriel d’installation est clair et précis.
    Encore bravo

Laissez un commentaire