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
Prochaine révision Les deux révisions suivantes
lamp [Le 06/01/2019, 13:44]
krodelabestiole [Conflit entre MySQL et MariaDB] déplacement de la procédure de réinstallation sur la page mysql
lamp [Le 28/08/2020, 23:33]
krodelabestiole [Création d'une base de donnée et d'un utilisateur associé] IDENTIFIED inutile pour GRANT.
Ligne 1: Ligne 1:
 {{tag>​serveur }} {{tag>​serveur }}
-----+
 ====== Serveur web - LAMP ======= ====== Serveur web - LAMP =======
  
Ligne 23: Ligne 23:
 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 libapache2-mod-php mariadb-server 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 [[php#​modules|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.\\
Ligne 49: Ligne 47:
 La méthode d'​installation décrite ici permet d'​obtenir un serveur LAMP pré-configuré et fonctionnel,​ affichant le contenu du répertoire **/​var/​www/​html** (par défaut les fichiers **index.html** ou **index.php**).\\ La méthode d'​installation décrite ici permet d'​obtenir un serveur LAMP pré-configuré et fonctionnel,​ affichant le contenu du répertoire **/​var/​www/​html** (par défaut les fichiers **index.html** ou **index.php**).\\
 </​note>​ </​note>​
 +
 +==== Méthodes alternatives ====
 +
 +Il existe d'​autres méthodes pour déployer un serveur LAMP : [[:​docker_lamp|docker]],​ [[:XAMPP]], virtualisation ou autre. Ces méthodes ne sont généralement pas recommandées,​ en particulier si vous êtes débutant·e,​ car elles ne fournissent pas la configuration par défaut sécurisée et standardisée pour [[:​debian_ubuntu_comparaison|Debian]] et Ubuntu documentée sur ce site.
 +
 +=== installation via Bitnami ===
 +
 +[[https://​bitnami.com/​|Bitnami]] est un fournisseur d'​applications web telles que Wordpress et Moodle, mais celle qui nous intéresse, c'est [[https://​bitnami.com/​stack/​lamp|LAMP]]. Il suffit de télécharger l'​exécutable,​ autoriser son exécution puis l'​exécuter en suivant les instructions.
 +
 +<note important>​Si **[[apt>​libncurses5]]** n'est pas installé, installez-le avant de lancer l'​installation de LAMP sinon vous allez rencontrer des erreurs.</​note>​
  
 ===== Personnalisation de l'​installation ===== ===== Personnalisation de l'​installation =====
Ligne 83: Ligne 91:
 <​code>​sudo systemctl start mysql</​code>​ <​code>​sudo systemctl start mysql</​code>​
  
-Les commandes disponibles sont //systemctl start////systemctl stop//, et //systemctl restart//.+Les commandes disponibles sont ''​systemctl start''​''​systemctl stop''​, et ''​systemctl restart''​.
  
 === Réactiver le démarrage automatique === === Réactiver le démarrage automatique ===
Ligne 93: Ligne 101:
 ===== Utilisation ===== ===== Utilisation =====
  
-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ées ​MySQL]].
  
 ==== Création d'un hôte virtuel ==== ==== 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 :
  
 <file - example.com.conf><​VirtualHost *:80> <file - example.com.conf><​VirtualHost *:80>
Ligne 112: Ligne 120:
 </​VirtualHost></​file>​ </​VirtualHost></​file>​
  
-On déploiera ici les fichiers du site dans le répertoire ​///​var/​www/​example//.+On déploiera ici les fichiers du site dans le répertoire ​''​/​var/​www/​example''​.
  
 Puis on active l'​hôte virtuel et on recharge la configuration d'​Apache : Puis on active l'​hôte virtuel et on recharge la configuration d'​Apache :
Ligne 122: Ligne 130:
 ==== Création d'une base de donnée et d'un utilisateur associé ==== ==== 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</​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 mysql>​CREATE DATABASE example; <code mysql>​CREATE DATABASE example;
-GRANT ALL PRIVILEGES ON example.* TO '​userExample'​@'​localhost' IDENTIFIED BY '​mot_de_passe';+CREATE USER '​userExample'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe';​ 
 +GRANT ALL PRIVILEGES ON example.* TO '​userExample'​@'​localhost';​
 FLUSH PRIVILEGES; FLUSH PRIVILEGES;
 QUIT;</​code>​ QUIT;</​code>​
Ligne 149: Ligne 158:
 Sa mise en place et son utilisation est donc incomparablement plus simple que celle d'un serveur de messagerie complet, et il ne requiert pas nécessairement l'​ouverture du port 25. Sa mise en place et son utilisation est donc incomparablement plus simple que celle d'un serveur de messagerie complet, et il ne requiert pas nécessairement l'​ouverture du port 25.
  
-Historiquement on utilisait **Sendmail** comme serveur SMTP sur GNU/Linux. Les logiciels sous Ubuntu tels que PHP font donc appel à la fonction ​///​usr/​sbin/​sendmail//+Historiquement on utilisait **Sendmail** comme serveur SMTP sur GNU/Linux. Les logiciels sous Ubuntu tels que PHP font donc appel à la fonction ​''​/​usr/​sbin/​sendmail''​
-Pour des raisons de simplicité lorsqu'​on installe une solution d'​envoi de courriel, que ce soit postfix, exim ou ssmtp, ​///​usr/​sbin/​sendmail// est remplacé par un [[:​lien_physique_et_symbolique|lien symbolique]] vers cette solution. C'est ce qui permet au système d'​envoyer des courriels, et à la fonction //​[[http://​php.net/​manual/​fr/​function.mail.php|mail()]]//​ de PHP de fonctionner :+Pour des raisons de simplicité lorsqu'​on installe une solution d'​envoi de courriel, que ce soit postfix, exim ou ssmtp, ​''​/​usr/​sbin/​sendmail'' ​est remplacé par un [[:​lien_physique_et_symbolique|lien symbolique]] vers cette solution. C'est ce qui permet au système d'​envoyer des courriels, et à la fonction //​[[http://​php.net/​manual/​fr/​function.mail.php|mail()]]//​ de PHP de fonctionner :
 <​code>​ls -al /​usr/​sbin/​sendmail <​code>​ls -al /​usr/​sbin/​sendmail
 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>​
 +
 +<note important>​
 +sSMTP n'est plus mis à jour, privilégiez [[:msmtp]]
 +
 +Pour qu'il fonctionne avec php, il faudra peut-être modifier le fichier php.ini (chercher et modifier la ligne) :
 +
 +<file - /​etc/​php/​7.2/​apache2/​php.ini>​
 +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>​
 +
 +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
 +</​note>​
  
 ===== Problèmes courants ===== ===== Problèmes courants =====
Ligne 175: Ligne 201:
   * [[:MySQL]]   * [[:MySQL]]
   * [[:​MariaDB]]   * [[:​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.txt
  • Dernière modification: Le 18/01/2024, 17:20
  • par lyondif02