Contenu | Rechercher | Menus

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
lamp [Le 20/11/2017, 12:30]
krodelabestiole [Méthode recommandée : Installation des paquets] + modules php + clean ancienne versions (inutile de spécifier les versions, du coup ça marche partout) et messages inutiles
lamp [Le 16/01/2018, 07:28] (Version actuelle)
82.251.241.242 [Configuration du démarrage automatique de LAMP]
Ligne 1: Ligne 1:
 {{tag>​serveur }} {{tag>​serveur }}
 ---- ----
-====== Serveur ​Web - LAMP =======+====== Serveur ​web - LAMP =======
  
-Un serveur **[[wpfr>​LAMP]]** est un serveur ​WebHistoriquementl'​acronyme « LAMP » fait référence aux quatre composantes d'​un ​tel serveur ​Web +Un serveur **[[wpfr>​LAMP]]** est un serveur ​webUn serveur web fournit des sites internetdes applications ou autres services accessibles par un navigateur web. LAMP est un acronyme pour **L**inux, **A**pache, **M**ySQL, **P**HP. Il s'agit probablement de la configuration la plus courante pour un serveur ​web 
-  * **L**inux le système d'​exploitation ​constituant ​la base du système. Ici, il s'​agit ​d'[[:​ubuntu_distribution |Ubuntu]]+  * **Linux** : système d'​exploitation, on peut déployer le stack LAMP sur la plupart des distributions GNU/Linux (mais ici nous traiterons spécifiquement ​d'ubuntu)
-  * **A**pache le serveur HTTP qui gère la communication ​avec le client+  * **[[:Apache]]** : serveur HTTP, il permet au serveur de communiquer ​avec le navigateur en utilisant le protocole HTTP(S) et ses extensions (WebDAV, etc.)
-  * **M**ySQL le système ​de gestion de base de données. +  * **MySQL** : il s'agit d'un serveur ​de bases de données. ​Il sert à stocker, à manipuler ​ et à accéder à des listes de données organisées par tableaux. Ce service peut être fournit par le logiciel ​[[:MySQL]] ou par [[:MariaDB]] (fork plus ouvertplus performantet 100% compatible MySQL). 
-  * **P**HP/​Python/​Perl : le langage de programmation associé  +  * **[[:PHP]]** : PHP est un langage de programmation (et son interpréteur) qui permet de générer du contenu web "​dynamiquement"​ (il s'agit la plupart du temps de pages [[wpfr>​HTML]]).
-<note >Les serveurs Linux/​Apache/​MySQL associés à [[:Python]] ou [[http://​fr.wikipedia.org/​wiki/​Perl_%28langage%29|Perl]] au lieu de PHP sont également appelés serveur « LAMP ». Cependantpour des soucis de simplicitéseul le cas (majoritaireoù PHP est utilisé comme langage de script est présenté iciVous pouvez obtenir des informations sur [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=395008|l'installation ​de Python dans Apache sur le forum]]</​note>​+
  
 +Un exemple type : un internaute veut afficher son profil sur un site internet. Au moyen de son navigateur il effectue une requête sur un serveur web en appelant une [[wpfr>​URL]] sur le domaine du serveur. Apache lance alors automatiquement le module PHP.  PHP va interpréter un script : pour répondre à la requête du navigateur il va à son tour envoyer une requête au serveur MySQL en lui demandant les informations de l'​utilisateur. Une fois ces informations récupérées,​ toujours en suivant le script, PHP mettra en forme le résultat sous forme de page web (HTML). Apache pourra alors retourner cette page au navigateur qui l'​affichera.
 ===== Installation ===== ===== 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'​[[:​installation |installer Ubuntu]] (ou une de ses [[:​variantes]]). La variante [[:​ubuntu_server|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+On peut déployer le stack LAMP sur n'importe quelle version ​ou [[:​variantes|variante]] d'​ubuntu. La variante [[:​ubuntu_server|Ubuntu server]] est particulièrement adaptée dans le cas d'un serveur ​"​headless"​ (sans interface graphique) ​contrôlable à distance (par [[:ssh]] notamment). ​
  
 ==== Méthode recommandée : Installation des paquets ==== ==== Méthode recommandée : Installation des paquets ====
Ligne 42: Ligne 42:
 > DROP USER '​root'​@'​localhost';​ > DROP USER '​root'​@'​localhost';​
 > CREATE USER '​root'​@'​%'​ IDENTIFIED BY '';​ > CREATE USER '​root'​@'​%'​ IDENTIFIED BY '';​
-> GRANT ALL PRIVILEGES ON *.* TO '​root'​@'​%';​+> GRANT ALL PRIVILEGES ON *.* TO '​root'​@'​%' ​WITH GRANT OPTION;
 > FLUSH PRIVILEGES; > FLUSH PRIVILEGES;
 </​note>​ </​note>​
Ligne 86: Ligne 86:
  
 ==== Configuration d'​Apache 2 ==== ==== Configuration d'​Apache 2 ====
- 
-==== Personnaliser Apache2 ==== 
  
 La configuration et les détails à propos d'​Apache 2 sont accessibles sur la [[:apache2 |page dédiée à ce serveur HTTP]]. La configuration et les détails à propos d'​Apache 2 sont accessibles sur la [[:apache2 |page dédiée à ce serveur HTTP]].
Ligne 94: Ligne 92:
  
 Ceci est utile en toute circonstance avec un Debian et un Ubuntu. Ceci est utile en toute circonstance avec un Debian et un Ubuntu.
 +
 +
 ==== Configuration de MySQL ==== ==== Configuration de MySQL ====
  
 La configuration et les détails à propos de MySQL sont accessibles sur la [[:mysql |page dédiée à ce serveur de base de données]]. La configuration et les détails à propos de MySQL sont accessibles sur la [[:mysql |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. 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 ==== ==== Configuration du répertoire de travail ====
  
 La configuration du répertoire de travail est accessible sur cette [[tutoriel:​lamp_repertoires_de_travail |page]] La configuration du répertoire de travail est accessible sur cette [[tutoriel:​lamp_repertoires_de_travail |page]]
 +
  
 ==== Configuration du démarrage automatique de LAMP ==== ==== Configuration du démarrage automatique de LAMP ====
  
-=== Empêcher LAMP de démarrer automatiquement ​ ====+=== Empêcher LAMP de démarrer automatiquement ​ === 
 Par défaut, apache démarre automatiquement lorsque vous allumez votre ordinateur. Par défaut, apache démarre automatiquement lorsque vous allumez votre ordinateur.
 Pour empêcher cela : Pour empêcher cela :
-<​code>​sudo ​update-rc.d -f apache2 ​disable</​code>​+<​code>​sudo ​systemctl ​disable ​apache2</​code>​
  
-Et pour mysql: +Et pour mysql : 
-<​code>​sudo ​sh -c "echo manual >> /etc/init/mysql.override."​</​code>​+<​code>​sudo ​systemctl disable ​mysql</​code>​
  
 Vous pourrez donc ensuite les lancer manuellement:​ Vous pourrez donc ensuite les lancer manuellement:​
-Pour Apache: +Pour Apache : 
-<​code>​/​etc/​init.d/​apache2 ​start</​code>​+<​code>​sudo systemctl ​start apache2</​code>​
  
 et pour MySql et pour MySql
-<​code>​mysql ​-u root -p -hlocalhost</​code>​+<​code>​sudo systemctl start mysql</​code>​ 
 + 
 ===== Utilisation et accès au serveur ===== ===== 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: Une fois l'​installation effectuée, le serveur est accessible (via un navigateur internet) à l'une des URL (locales) suivantes:
   * http://​127.0.0.1   * http://​127.0.0.1
Ligne 124: Ligne 131:
   * http://​hostname ("​hostname"​ étant le nom de votre ordinateur)   * 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 ​: [[http://websyys.olympe.in/localserver-indicator-raccourcis-pour-serveur-local-ubuntu-13-10.html|localserver-indicator]] FIXME [lien cassé]+Il existe des interfaces graphiques pour utiliser Apache et MySQL : [[https://launchpad.net/localhost-indicator|localhost-indicator]],​ [[https://​launchpad.net/​rapache|rapache]] et [[webmin]] (à utiliser avec prudence). 
 + 
 + 
 +===== Problèmes courants ===== 
 + 
 +==== Plusieurs version de PHP installées simultanément ==== 
 + 
 +Il est possible que plusieurs versions de PHP soient installées simultanément,​ par ex. après une mise à jour majeure d'​ubuntu si vous avez spécifié le numéro de version de PHP lors de l'​installation des paquets, ou si vous avez ajouté un PPA exotique ​pour installer une version spécifique de PHP (mauvaise idée, il vaut mieux dans ce cas utiliser [[:​docker_lamp|docker]]).\\ 
 +Cela peut par ex. rendre des modules de PHP inaccessibles alors qu'ils semblent bien installés. 
 + 
 +Vous pouvez vérifier cela avec cette commande : 
 +<​code>​apt list php* | grep install</​code>​ 
 +Si vous voyez apparaître plusieurs versions de php, par ex. php7.0 php7.1 ou php5.6, vous avez un problème. Dans ce cas supprimez les versions de PHP qui ne correspondent pas à la version proposée par les dépôts officiels d'ubuntu ​(php7.0 sur Xenial, php7.1 sur Artful) puis réinstallez les paquets absents si nécessaire (libapache2-mod-php, etc). 
 + 
 + 
 +==== 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 : 
 +<​code>​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.</​code>​ 
 +ou encore : 
 +<​code>​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.</​code>​
  
- ​[[https://​launchpad.net/​localhost-indicator|localhost-indicator]],​ [[https://​launchpad.net/​rapache|rapache]] et [[webmin]] (à utiliser avec prudence).+Dans ce cas il faut supprimer les paquets ainsi que tous les fichiers de configuration de votre serveur de bases de donnéesAttention cela rendra les bases de données existantes inaccessibles !
  
 +<​code>​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</​code>​
 ===== Voir aussi ===== ===== Voir aussi =====
   * [[http://​www.it-connect.fr/​installer-un-serveur-lamp-linux-apache-mysql-php/​|Tutoriel : Mise en place d'un serveur LAMP sur IT-Connect ]] **(fr)**   * [[http://​www.it-connect.fr/​installer-un-serveur-lamp-linux-apache-mysql-php/​|Tutoriel : Mise en place d'un serveur LAMP sur IT-Connect ]] **(fr)**


Le contenu de ce wiki est sous licence : CC BY-SA v3.0