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 16/05/2018, 13:36]
92.133.88.35 ancienne révision (Le 01/05/2018, 17:56) restaurée
lamp [Le 11/05/2019, 14:43] (Version actuelle)
nicolas84 précision/clarification
Ligne 6: Ligne 6:
  
   * **Linux** : le système d'​exploitation,​ on peut déployer la pile LAMP sur la plupart des distributions GNU/Linux ;   * **Linux** : le système d'​exploitation,​ on peut déployer la pile LAMP sur la plupart des distributions GNU/Linux ;
-  * **[[:​Apache]]** : le serveur HTTP, il permet au serveur de communiquer avec le navigateur en utilisant le protocole HTTP(S) ;+  * **[[:apache2|Apache]]** : le serveur HTTP, il permet au serveur de communiquer avec le navigateur en utilisant le protocole HTTP(S) ;
   * **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 en tableaux. Ce service peut être fournit par le logiciel [[:MySQL]] ou par [[:​MariaDB]] (fork plus ouvert, plus performant, et 100% compatible MySQL).   * **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 en tableaux. Ce service peut être fournit par le logiciel [[:MySQL]] ou par [[:​MariaDB]] (fork plus ouvert, plus performant, et 100% compatible MySQL).
   * **[[:​PHP]]** : PHP est un langage de programmation interprété qui permet de générer du contenu web dynamiquement. Il s'agit la plupart du temps de pages [[wpfr>​HTML]]).   * **[[:​PHP]]** : PHP est un langage de programmation interprété qui permet de générer du contenu web dynamiquement. Il s'agit la plupart du temps de pages [[wpfr>​HTML]]).
Ligne 17: Ligne 17:
  
 ==== Méthode recommandée : installation des paquets ==== ==== Méthode recommandée : installation des paquets ====
- 
-<note warning>​À partir d'​Ubuntu 16.04 les paquets doivent être installés par le biais d'un terminal pour fonctionner correctement (voir note ci-dessous).</​note>​ 
  
 Cette méthode consiste à [[:​tutoriel:​comment_installer_un_paquet|installer]] les paquets nécessaires pour Apache, PHP et MySQL :\\ Cette méthode consiste à [[:​tutoriel:​comment_installer_un_paquet|installer]] les paquets nécessaires pour Apache, PHP et MySQL :\\
  
-<code bash>​sudo apt install apache2 php mysql-server ​libapache2-mod-php php-mysql</​code>​+<code bash>​sudo apt install apache2 php libapache2-mod-php ​mysql-server ​php-mysql</​code>​
 ou si vous préférez opter pour [[:​mariadb|MariaDB]] au lieu de MySQL : ou si vous préférez opter pour [[:​mariadb|MariaDB]] au lieu de MySQL :
-<code bash>​sudo apt install apache2 php mariadb-server ​libapache2-mod-php php-mysql</​code>​+<code bash>​sudo apt install apache2 php libapache2-mod-php ​mariadb-server ​php-mysql</​code>​
  
 +(attention le paquet php installe directement la dernière version de php)
  
-La pile LAMP est alors installée. 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.\\+La pile LAMP est alors installée. Cependant la plupart des scripts ​[[:PHP]] ([[:CMS]], forums, applications web en tout genre) utilisent des [[php#​modules|modules de PHP]] pour bénéficier de certaines fonctionnalités.\\
 Voici comment installer les modules les plus courants : Voici comment installer les modules les plus courants :
-<code bash>​sudo apt install php-curl php-gd php-intl php-json php-mbstring ​php-mcrypt ​php-xml php-zip</​code+<code bash>​sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip</​code>​
-<note tip>//​php-mbstring//​ n'est plus nécessaire sous [[:​bionic|Ubuntu 18.04 - Bionic]]</​note>+
  
 Description des paquets : Description des paquets :
-  * Le paquet [[apt>​apache2|apache2]] installe le serveur HTTP [[:apache2 |Apache 2]].   +  * Le paquet [[apt>​apache2|apache2]] installe le serveur HTTP [[:apache2 |Apache 2]] (c'est une dépendance de libapache2-mod-php).   
-  * Le paquet [[apt>​php|php]] méta-paquet permettant d'​installer au moins un interpréteur ​PHP [[:php |PHP]].+  * Le paquet [[apt>​php|php]] méta-paquet permettant d'​installer au moins un interpréteur [[:​PHP]] ​(aussi installé ici en dépendance de libapache2-mod-php).
   * Le paquet [[apt>​libapache2-mod-php|libapache2-mod-php]] 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 [[apt>​libapache2-mod-php|libapache2-mod-php]] 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 [[apt>​mysql-server|mysql-server]] installe le serveur de bases données [[:mysql |MySQL]].   * Le paquet [[apt>​mysql-server|mysql-server]] installe le serveur de bases données [[:mysql |MySQL]].
   * Le paquet [[apt>​mariadb-server|mariadb-server]] installe le serveur de base données [[:​mariadb|MariaDB]].   * Le paquet [[apt>​mariadb-server|mariadb-server]] installe le serveur de base données [[:​mariadb|MariaDB]].
   * Le paquet [[apt>​php-mysql|php-mysql]] installe les module permettant d'​utiliser MySQL ou MariaDB avec PHP.   * Le paquet [[apt>​php-mysql|php-mysql]] installe les module permettant d'​utiliser MySQL ou MariaDB avec PHP.
- 
-<note important>​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 <​code>​sudo apt install mysql-server</​code>​ 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 souci. 
-<​code>​sudo mysql -u root 
-mysql> ALTER USER '​root'​@'​localhost'​ IDENTIFIED WITH mysql_native_password BY '​le_mot_de_pass_choisi';​ 
-mysql> FLUSH PRIVILEGES; 
-mysql> QUIT;</​code>​ 
-</​note>​ 
  
 Une fois les paquets installés, ouvrez un des liens suivants dans votre navigateur : Une fois les paquets installés, ouvrez un des liens suivants dans votre navigateur :
Ligne 104: Ligne 94:
  
 La mise en place d'un site internet, [[:CMS]], ou autre application web se fait en général en [[:​apache2#​creation_d_hotes_virtuels|créant un hôte virtuel]] pour [[:​apache2|Apache]],​ et une [[:​mysql#​base_de_donnee|base de donnée MySQL]]. La mise en place d'un site internet, [[:CMS]], ou autre application web se fait en général en [[:​apache2#​creation_d_hotes_virtuels|créant un hôte virtuel]] pour [[:​apache2|Apache]],​ et une [[:​mysql#​base_de_donnee|base de donnée MySQL]].
 +
 +==== Création d'un hôte virtuel ====
  
 Par exemple pour mettre en place une solution qu'on appellera ici //example// sur un nom de domaine //​example.com//,​ en créera un fichier ///​etc/​apache2/​sites-available/​example.com.conf//​ contenant : Par exemple pour mettre en place une solution qu'on appellera ici //example// sur un nom de domaine //​example.com//,​ en créera un fichier ///​etc/​apache2/​sites-available/​example.com.conf//​ contenant :
Ligne 125: Ligne 117:
 <​code>​sudo a2ensite example.com <​code>​sudo a2ensite example.com
 sudo systemctl reload apache2</​code>​ sudo systemctl reload apache2</​code>​
 +
 +<note tip>Pour plus de détails, consultez la documentation //​[[:​apache2#​creation_d_hotes_virtuels|Création d'​hôtes virtuels]]//,​ et pour des exemples pratiques consultez le tutoriel //​[[:​tutoriel:​lamp_repertoires_de_travail|Créer un/des répertoires de travail]]//​.</​note>​
 +
 +==== Création d'une base de donnée et d'un utilisateur associé ====
  
 On se connecte ensuite au serveur MySQL (en ajoutant //-p// si on a spécifié un mot de passe pour //root//) : On se connecte ensuite au serveur MySQL (en ajoutant //-p// si on a spécifié un mot de passe pour //root//) :
-<​code>​sudo mysql -u root</​code>​+<​code>​sudo mysql</​code>​
  
 Puis on créé une base de données //example// associée à un utilisateur //​userExample//​ (en remplaçant //​mot_de_passe//​ par un mot de passe complexe) : Puis on créé une base de données //example// associée à un utilisateur //​userExample//​ (en remplaçant //​mot_de_passe//​ par un mot de passe complexe) :
-<​code>​CREATE DATABASE example;+<​code ​mysql>CREATE DATABASE example;
 GRANT ALL PRIVILEGES ON example.* TO '​userExample'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe';​ GRANT ALL PRIVILEGES ON example.* TO '​userExample'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe';​
 FLUSH PRIVILEGES; FLUSH PRIVILEGES;
-EXIT</​code>​+QUIT;</​code>​
  
 Il faudra finalement renseigner ces informations de connexion lors de l'​installation ou la configuration de la solution web. Il faudra finalement renseigner ces informations de connexion lors de l'​installation ou la configuration de la solution web.
  
-Pour plus de détails, consultez ​les documentations respectives : +Pour plus de détails, consultez ​la documentation //[[:​mysql#​base_de_donnee|création de bases de données]]//.
-  * [[:​apache2#​creation_d_hotes_virtuels|création d'​hôtes virtuels]] +
-  * [[:​mysql#​base_de_donnee|création de bases de données]]+
  
 ===== Envoi de courriel ===== ===== Envoi de courriel =====
Ligne 160: Ligne 154:
 lrwxrwxrwx 1 root root 5 Jul 15  2014 /​usr/​sbin/​sendmail -> ssmtp</​code>​ lrwxrwxrwx 1 root root 5 Jul 15  2014 /​usr/​sbin/​sendmail -> ssmtp</​code>​
  
-===== Problèmes courants =====+<note important>​ 
 +sSMTP n'est plus mis à jour, privilégiez [[:msmtp]]
  
-==== Conflits potentiels entre plusieurs versions de PHP ====+Pour qu'il fonctionne avec php, il faudra peut-être modifier le fichier php.ini (chercher et modifier la ligne) :
  
-Il est possible que plusieurs versions de PHP soient installées simultanément,​ par exaprè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]]).\\ +<file - /​etc/​php/​7.2/​apache2/​php.ini> 
-Cela peut par ex. rendre des modules de PHP inaccessibles alors qu'ils semblent bien installés.+sendmail_path = "/​usr/​bin/​msmtp -C /​etc/​msmtprc -t" 
 +</​file>​ 
 +Le fichier ​de configuration doit appartenir a www-data et avoir des droits 600 
 +<​code>​ 
 +sudo chown www-data:​www-data /​etc/​msmtprc 
 +sudo chmod 600 /​etc/​msmtprc 
 +</​code>​
  
-Vous pouvez vérifier cela avec cette commande : +FIXME Utiliser un deuxième fichier de configuration pour ne pas interférer ​avec le système ? (pour que root reste propriétaire du fichier de configuration principal) Exemple /​etc/​msmtprc_php 
-<code>apt list php* | grep install</code> +</note> 
-Si vous voyez apparaître plusieurs versions de phppar 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 Xenialphp7.1 sur Artful) puis réinstallez les paquets absents si nécessaire (libapache2-mod-php, etc).+ 
 +===== Problèmes courants ===== 
 + 
 +<note tip>En fonction du problème que vous rencontrezconsultez également ​les problèmes courants spécifiques ​à [[:​apache2#​problemes_courants|Apache]]ceux de [[:php#​problemes_courants|PHP]] ou ceux de [[:​mysql#​problemes_courants|MySQL]].</​note>​
  
 ==== Conflit entre MySQL et MariaDB ==== ==== Conflit entre MySQL et MariaDB ====
Ligne 181: Ligne 185:
 Upgrade process encountered error and will not continue.</​code>​ Upgrade process encountered error and will not continue.</​code>​
  
-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 ! +Dans ce cas le plus simple est de supprimer les paquets ainsi que tous les fichiers de configuration de votre serveur de bases de données ​en [[:​mysql#​reinstallation_complete|réinstallant complètement MySQL ou MariaDB]].
- +
-<​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)** +  * [[:apache2|Apache]] 
-  * [[xampp]] Une version de LAMP simplifiée,​ servant pour le développement (seulement).+  * [[:PHP]] 
 +  ​[[:MySQL]] 
 +  * [[:MariaDB]] 
 +  * [[:​tutoriel:​lamp_repertoires_de_travail|Serveur ​LAMP - Créer un/des répertoires de travail]]
  
 //​Contributeurs : [[utilisateurs:​krodelabestiole]],​ [[utilisateurs:​oxossi]],​ [[utilisateurs:​albanmartel]],​ [[utilisateurs:​harren]].//​ //​Contributeurs : [[utilisateurs:​krodelabestiole]],​ [[utilisateurs:​oxossi]],​ [[utilisateurs:​albanmartel]],​ [[utilisateurs:​harren]].//​
  • lamp.1526470598.txt.gz
  • Dernière modification: Le 16/05/2018, 13:36
  • par 92.133.88.35