Ceci est une ancienne révision du document !
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é
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 :
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
Le stack LAMP est alors installé. Cependant la plupart des scripts PHP (CMS, forums, applications web en tout genre) utilisent des modules de PHP pour bénéficier de certaines fonctionnalités.
Voici comment installer les modules les plus courants :
sudo apt install php-curl php-gd php-intl php-json php-mbstring php-mcrypt php-xml php-zip
Description des paquets :
- Le paquet libapache2-mod-php permet d'utiliser PHP en tant que module d'Apache (on peut aussi utiliser PHP en ligne de commande ou indépendamment en FastCGI, ce qui le rend plus performant mais plus compliqué à mettre en place)
- Le paquet mysql-server installe le serveur de bases données MySQL.
- Le paquet mariadb-server installe le serveur de bases données MariaDB.
- Le paquet php-mysql installe le module permettant d'utiliser MySQL ou MariaDB avec PHP.
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 problème 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;
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 ».
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
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.1) et 2)
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 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:
- http://hostname ("hostname" étant le nom de votre ordinateur)
Il existe des interfaces graphiques pour utiliser Apache et MySQL. De la plus simple à la plus complète : localserver-indicator [lien cassé]
localhost-indicator, rapache et webmin (à utiliser avec prudence).
Problèmes courants
Conflit entre MySQL et MariaDB
Si vous avez installé MariaDB et que vous cherchez à passer sur MySQL, il est possible que vous rencontriez une erreur de ce type lors de l'installation de votre paquet :
Aborting downgrade from (at least) 10.0 to 5.7. If are sure you want to downgrade to 5.7, remove the file /var/lib/mysql/debian-*.flag and try installing again.
ou encore :
mysql_upgrade: Got error: 1524: Plugin 'unix_socket' is not loaded while connecting to the MySQL server Upgrade process encountered error and will not continue.
Dans ce cas il faut supprimer les paquets ainsi que tous les fichiers de configuration de votre serveur de bases de données. Attention cela rendra les bases de données existantes inaccessibles !
sudo apt autoremove --purge mysql* mariadb* sudo apt clean sudo mv /var/lib/mysql /var/lib/mysql_bak sudo mv /etc/mysql /etc/mysql_bak sudo apt install mysql-server
Voir aussi
- xampp Une version de LAMP simplifiée, servant pour le développement (seulement).
Contributeurs : oxossi, albanmartel, harren.