Serveur Web - LAMP

Un serveur LAMP est un serveur Web. Historiquement, l'acronyme « LAMP » fait référence aux quatre composantes d'un tel serveur Web :

  • Linux : le système d'exploitation constituant la base du système. Ici, il s'agit d'Ubuntu.
  • Apache : le serveur HTTP qui gère la communication avec le client.
  • MySQL : le système de gestion de base de données.
  • PHP/Python/Perl : le langage de programmation associé
Les serveurs Linux/Apache/MySQL associés à Python ou Perl au lieu de PHP sont également appelés serveur « LAMP ». Cependant, pour des soucis de simplicité, seul le cas (majoritaire) où PHP est utilisé comme langage de script est présenté ici. Vous pouvez obtenir des informations sur l'installation de Python dans Apache sur le forum

Installation

Le prérequis pour un serveur "LAMP" est d'avoir un système d'exploitation GNU/Linux. La première étape est donc d'installer Ubuntu (ou une de ses variantes). La variante Ubuntu server est particulièrement adaptée dans le cas d'un serveur de production contrôlable à distance (par ssh notamment) et ne nécessitant pas d'interface graphique.

Méthode recommandée : Installation des paquets

Cette méthode consiste à installer les paquets nécessaires pour apache, php et mysql :

à partir d'Ubuntu 16.04 :
Attention : Les paquets doivent être installés par le biais d'un terminal pour fonctionner correctement (voir note ci-dessous).

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

ou si vous préférez opter pour MariaDB au lieu de MySQL:

sudo apt install apache2 php mariadb-server libapache2-mod-php php-mysql
L'installation du paquet mysql-server en cliquant simplement sur un lien apt crée un problème à l'installation ! L'installeur ne demande pas le mot de passe pour mysql-server et l'accès est dès lors compliqué à mysql. Installez bien ce paquet en utilisant le terminal et la commande
sudo apt install mysql-server

comme indiqué juste au dessus. Vous pouvez consulter cette discussion https://forum.ubuntu-fr.org/viewtopic.php?pid=21588812#p21588812 Pour ceux qui auraient le probleme de connexion mysql sur la 16.04, voici la manip à faire pour régler le soucis.

sudo mysql -u root
DROP USER 'root'@'localhost';
CREATE USER 'root'@'%' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
Il est préferable d'installer les paquets un par un, l'installation en une ligne de commande pouvant crée des problèmes de configuration.(Cette méthode corrigeant donc le problème énoncé, ci-dessus.)

pour les versions précédentes :
apache2, php5, mysql-server, libapache2-mod-php5, php5-mysql

sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql

Description des paquets :

Une fois les paquets installés, ouvrez un des liens suivants dans votre navigateur :

Si le message « It works! » s'affiche, votre serveur Lamp est correctement installé.

Selon la version installée, vous pouvez aussi avoir une page intitulée « Apache2 Ubuntu Default Page ».

Sinon consultez les notes ci-dessous :

Si après l'installation, le serveur refuse d'ouvrir les fichiers en PHP (Firefox vous demande si vous voulez télécharger la page en PHP), il faudra vider le cache de Firefox (ça peut suffire) et parfois (ré)installer le paquet libapache2-mod-php5. De même il arrive qu'il faille (ré)installer le paquet php5-mysql si PHP ne dispose pas des instructions de gestion des bases de données MySQL.
Les méthodes d'installation décrites ici permettent d'obtenir un serveur "LAMP" pré-configuré et fonctionnel.
Une configuration n'est donc nécessaire que dans le cas d'une personnalisation de l'installation.

Alternative : Installation par tâches

Méthode graphique

Préalable : installer tasksel

Synaptic permet d'installer automatiquement tous les paquets correspondant à une tâche. La liste des tâches est accessible par le menu Édition/Sélectionner paquets par tâches. Il suffit de sélectionner « serveur LAMP » et de valider puis de cliquer sur le bouton « Appliquer » pour installer les paquets nécessaires.

Méthode en lignes de code

Tasksel permet également d'installer automatiquement tous les paquets nécessaires sans avoir recours à une interface graphique. Dans le cas d'un serveur "LAMP", l'installation complète se résume à l'utilisation d'une seule commande :

sudo tasksel install lamp-server
Si vous voulez désinstaller LAMP, ne faites surtout pas "sudo tasksel remove lamp-server".
Tasksel ne doit jamais être utilisé pour la suppression de paquet.
Celui-ci supprime les paquets nécessaires au reste du système sans se poser de question.3) et 4)
En fait, c'est le package lamp-server^ (avec l'accent circonflexe) qu'il ne faut pas désinstaller. Que ce soit via apt-get ou tasksel. En revanche,les autres packages peuvent être désinstallés via Tasksel tout comme via apt-get.

ou sans passer par tasksel

sudo apt-get install lamp-server^

N'oubliez pas le caractère ^ en fin de ligne. .

personnalisation de l'installation

Configuration d'Apache 2

Personnaliser Apache2

La configuration et les détails à propos d'Apache 2 sont accessibles sur la page dédiée à ce serveur HTTP.

La configuration et les détails pour permettre à chaque utilisateur d'avoir son propre site dans public_html sont accessibles sur la page Page dédiée <<public_html>>.

Ceci est utile en toute circonstance avec un Debian et un Ubuntu.

Configuration de PHP

La configuration et les détails à propos de PHP sont accessibles sur la page dédiée à ce langage.

Configuration de MySQL

La configuration et les détails à propos de MySQL sont accessibles sur la page dédiée à ce serveur de base de données. Il est courant d'installer également PHPMyAdmin afin de gérer la base de donnée MySQL dans une interface Web écrite en PHP.

Configuration du répertoire de travail

La configuration du répertoire de travail est accessible sur cette page

Configuration du démarrage automatique de LAMP

Empêcher LAMP de démarrer automatiquement

Par défaut, apache démarre automatiquement lorsque vous allumez votre ordinateur. Pour empêcher cela :

sudo update-rc.d -f apache2 disable

Et pour mysql:

sudo sh -c "echo manual >> /etc/init/mysql.override."

Vous pourrez donc ensuite les lancer manuellement: Pour Apache:

/etc/init.d/apache2 start

et pour MySql

mysql -u root -p -hlocalhost

Utilisation et accès au serveur

Une fois l'installation effectuée, le serveur est accessible (via un navigateur internet) à l'une des URL (locales) suivantes:

Il existe des interfaces graphiques pour utiliser Apache et MySQL. De la plus simple à la plus complète : localserver-indicator FIXME [lien cassé]

localhost-indicator, rapache et webmin (à utiliser avec prudence).

Voir aussi

Contributeurs : oxossi, albanmartel, harren.

1)
grâce aux dépendances du précédent ( à vérifier)
2)
vérifier s'il n'est pas installé automatiquement grâce aux dépendances (non réalisé pour Ubuntu 13.04)
  • lamp.txt
  • Dernière modification: Le 28/04/2018, 11:16
  • (modification externe)