Pour transformer votre installation d’Ubuntu en un véritable serveur web, il convient d’installer les éléments indispensables au bon fonctionnement de la plupart des sites. Ce billet décrit une architecture de type LAMP, à savoir : Linux, Apache, MySQL et PHP.

Je le sais bien, c’est un énième tuto qui présente l’installation d’un LAMP sur Ubuntu. Je n’ai pas inventé l’eau chaude et je ne cherche pas à réinventer la roue. Ce guide est le fruit de mes recherches lors des difficultés que j’ai pu rencontrer durant ce type de configuration. Je le mets à jour au fur et à mesure des nouveaux problèmes rencontrés ou des infos qui me paraissent intéressante lors de mes pérégrinations sur le web.

Vous y trouverez donc peut-être l’info qu’il n’y a pas ailleurs ;-). Si vous êtes dans une configuration similaire à la mienne, je suis donc peut-être en mesure de vous aider. Je vous recommande alors de me le dire dans les commentaires, nos petits copains internautes pourront ainsi en profiter.

Pré-requis

  1. Une installation fonctionnelle d’Ubuntu 17.10.
  2. Quelques connaissances en ligne de commande, mais si vous avez pu faire le 1, c’est que vous en êtes capable !
  3. Votre cerveau fraîchement reposé et disposé à rentrer dans le vif du sujet.
  4. Votre indulgence et votre collaboration (cf. commentaires) si je ne suis pas clair.

Installer LAMP

LAMP, késako ?

LAMP est un acronyme désignant une architecture basé sur des logiciels libres (open source et gratuit) permettant de construire des serveurs de sites web. Il se réfère aux logiciels suivants :

  • L pour Linux  : le système d’exploitation (GNU/Linux) ;
  • A pour Apache  : le serveur Web ;
  • M à l’origine pour MySQL, mais  s’applique également pour MariaDB qui est un fork de MySQL : le serveur de base de données ;
  • P en général c’est PHP, mais s’applique également pour les langages Python ou Perl : le langage de programmation.

Ce billet s’attachera uniquement à la configuration de PHP et MySQL. MariaDB, Python et Perl, je n’ai rien contre vous, mais je ne vais pas parler de vous (pour l’instant en tout cas).

Installer les paquets Apache, PHP et MySQL

Nous allons commencez par installer les paquets Apache, PHP et MySQL, en tapant la commande suivante :

sudo apt install apache2 php mysql-server libapache2-mod-php php-mysql

Si vous préférez travailler avec MariaDB, il suffit alors de remplacer le paquet mysql-server par mariadb-server.

Avec ceci, vous avez les fonctionnalités de base pour que votre serveur LAMP puisse fonctionner. Cependant la plupart des applications web (par les exemples les CMS) utilisent des modules de PHP ou d’Apache pour bénéficier de certaines fonctionnalités complémentaire.

Voici un premier lot de modules assez courants :

sudo apt install php-curl php-intl php-zip php-memcache php-memcached php-mbstring php-mcrypt php-gd php-xml php-json php-tidy

Sachez adapter cette étape en fonction de vos besoins. N’oubliez pas de relancer Apache pour qu’il puisse prendre en compte les derniers éléments ajoutés :

sudo service apache2 restart

Une fois les paquets installés, tapez l’adresse IP de votre machine virtuelle dans votre navigateur. Si la page intitulée « Apache2 Ubuntu Default Page » s’affiche, c’est que votre serveur LAMP est correctement installé. Selon les versions installées, vous pouvez aussi avoir un message « It works ! ».

Configurations des droits

Ajoutez-vous au groupe www-data (c’est le groupe d’Apache)  :

sudo usermod -a -G www-data <username>

Rendez ce même groupe propriétaire de /var/www la chaine <username> devant être remplacé par votre login :

sudo chown -R <username>:www-data /var/www/

Commandes Apache2 à retenir

Pour démarrer Apache :

sudo service apache2 start

Pour relancer Apache :

sudo service apache2 restart

Pour recharger la configuration d’Apache :

sudo service apache2 reload

Pour arrêter Apache :

sudo service apache2 stop

Installer Webmin (facultatif)

Si vous travaillez avec une machine virtuelle, vous avez très certainement une distribution serveur, ce qui veut dire qu’il n’y a pas d’interface graphique. Cela peut-être utile de s’en garder une sous la main si vous n’êtes pas très à l’aise avec la ligne de commande. Webmin est une interface web qui permet d’administrer simplement un serveur UNIX ou Linux à distance via votre navigateur web.

L’installation est assez simple, il faut dans un premier temps ajouter la clé GPG du dépôt à votre système en executant dans un terminal la commande suivante :

wget -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add -

Puis il faut modifiez les sources de logiciels pour y ajouter un dépôt de Webmin. Editez le fichier /etc/apt/sources.list :

sudo nano /etc/apt/sources.list

Toutes lignes déjà présentes correspondent aux dépôts principaux d’Ubuntu.Vous remarquez que les # placés devant les lignes des dépôts-sources commentent la ligne et donc désactivent ces dépôts. Vous allez rajouter à la fin la ligne :

deb http://download.webmin.com/download/repository sarge contrib

Avant d’installer le paquet, il faut rechargez la liste pour qu’il puisse prendre en compte le nouveau dépôt :

sudo apt update

Vous pouvez à présent installer le paquet Webmin :

sudo apt install webmin

Et c’est tout ! Vous pouvez vous connecter à partir d’un navigateur avec l’IP de votre serveur http://x.x.x.x:10000/ dans mon cas, ou avec le nom d’hôte de votre machine si vous l’avez configuré http://yourhost:10000/..

Dashboard de Webmin

Dashboard de Webmin

Installer phpMyAdmin (facultatif)

Personnellement je n’utilise pas phpMyAdmin pour travailler, car je ne le trouve pas pratique. Etant sur Mac, je lui préfère Sequel Pro dans mon quotidien ou éventuellement MySQL WorkBench qui sont l’un et l’autre des clients lourd (à installer sur votre ordinateur donc). Cependant, il est souvent assez utile d’avoir une interface web pour gérer nos bases de données, phpMyAdmin est clairement une des meilleures webapp en la matière. C’est donc l’occasion pour vous d’apprendre à l’installer :

sudo apt install phpmyadmin

Placez un lien symbolique vers phpMyAdmin dans /var/www, pour pouvoir y accéder plus facilement depuis la racine du serveur web :

sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin

3 commentaires

kers91 · 4 avril 2018 à 12 h 30 min

Merci de tuto !!! Connait-tu un outil autre que webmin pour gerer via une interface les vhost ?

    Cyrille de Gourcy · 4 avril 2018 à 16 h 02 min

    J’ai pour habitude de gérer les fichiers de mes vhost directement avec un éditeur de texte comme VI ou NANO. Sache cependant que Webmin te permet de créer tes fichiers vhost Serveurs > Serveur web Apache > Créer un hôte virtuel et tu peux y modifier ceux déjà existant. Cela revient à modifier à la main les vhost, mais sans passer par un éditeur de texte en CLI.

    Sinon, tu peux peut-être regarder ISPconfig (https://www.ispconfig.org) qui est gratuit ou Cpanel (https://www.cpanel.com/) en payant. Il y en a beaucoup d’autres https://alternativeto.net/software/webmin/ mais que je n’ai jamais utilisé, je vais donc avoir du mal à t’aider si tu pars sur l’un d’entre eux.

Harry Olesnicki · 1 décembre 2018 à 19 h 12 min

MERCI 1000 fois! Clair, précis et concis.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.