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 28/08/2020, 11:00]
92.145.143.232 Ajout de la création d'un utilisateur dans la commande mysql. La commande GRANT n'autorisant pas la création d'un utilisateur.
lamp [Le 18/01/2024, 17:20] (Version actuelle)
lyondif02 [Méthodes alternatives] typo.
Ligne 5: Ligne 5:
 LAMP est un acronyme pour **L**inux, **A**pache, **M**ySQL, **P**HP. ​ C'est une pile logicielle comprenant le système d'​exploitation,​ un serveur HTTP, un système de gestion de bases de données et un langage de programmation interprété,​ et qui permet de mettre en place un [[:​web#​serveurs|serveur web]]. LAMP est un acronyme pour **L**inux, **A**pache, **M**ySQL, **P**HP. ​ C'est une pile logicielle comprenant le système d'​exploitation,​ un serveur HTTP, un système de gestion de bases de données et un langage de programmation interprété,​ et qui permet de mettre en place un [[:​web#​serveurs|serveur web]].
  
-  * **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 ; 
-  * **[[:​apache2|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 performantet 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 fourni ​par le logiciel [[:MySQL]] ou par [[:​MariaDB]] (fork plus ouvert, plus performant et 100 % compatible ​avec 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]].
  
-Un exemple type : un internaute veut afficher son profil sur un site web. Au moyen de son navigateur il effectue une requête sur un [[:​web#​serveurs|serveur web]] en appelant une [[:​web#​url|URL]] sur le domaine du serveur. Le module PHP d'​Apache va interpréter un script qui envoie une requête au serveur MySQL en lui demandant les informations de l'​utilisateur. Une fois ces informations récupérées,​ le script PHP met en forme le résultat sous forme de page web (HTML) qui est envoyée au navigateur web.+Voici un exemple typique d’utilisation. Un internaute veut afficher son profil sur un site web. Au moyen de son navigateuril effectue une requête sur un [[:​web#​serveurs|serveur web]] en appelant une [[:​web#​url|URL]] sur le domaine du serveur. Le module PHP d'​Apache va interpréter un script qui envoie une requête au serveur MySQL en lui demandant les informations de l'​utilisateur. Une fois ces informations récupérées,​ le script PHP met en forme le résultat sous forme de page web (HTML) qui est envoyée au navigateur web.
  
 ===== Installation ===== ===== Installation =====
  
-On peut déployer la pile 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). ​+On peut déployer la pile LAMP sur n'​importe quelle version ou [[:​variantes|variante]] d'​Ubuntu ​(le système d'​explotation que vous utilisez). 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 31: Ligne 31:
   * Le paquet [[apt>​apache2|apache2]] installe le serveur HTTP [[:apache2 |Apache 2]] (c'est une dépendance de libapache2-mod-php).  ​   * 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]] (aussi installé ici en dépendance de libapache2-mod-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 modules ​permettant d'​utiliser MySQL ou MariaDB avec PHP.
  
 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 50: Ligne 50:
 ==== Méthodes alternatives ==== ==== 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.+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, 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 === === 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.+[[https://​bitnami.com/​|Bitnami]] est un fournisseur d'​applications web telles que Wordpress et Moodle. Celle qui nous intéresse est [[https://​bitnami.com/​stack/​lamp|LAMP]]. Il suffit de télécharger l'​exécutable ​correspondantd’autoriser son exécution puis de 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>​+<note important>​Si **[[apt>​libncurses5]]** n'est pas installé, installez-le avant de démarrer ​l'​installation de LAMP. Sinon vous allez rencontrer des erreurs.</​note>​
  
 ===== Personnalisation de l'​installation ===== ===== Personnalisation de l'​installation =====
Ligne 105: Ligne 105:
 ==== 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'', ​on 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 136: Ligne 136:
 <code mysql>​CREATE DATABASE example; <code mysql>​CREATE DATABASE example;
 CREATE USER '​userExample'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe';​ CREATE USER '​userExample'​@'​localhost'​ IDENTIFIED BY '​mot_de_passe';​
-GRANT ALL PRIVILEGES ON example.* TO '​userExample'​@'​localhost' IDENTIFIED BY '​mot_de_passe';+GRANT ALL PRIVILEGES ON example.* TO '​userExample'​@'​localhost';​
 FLUSH PRIVILEGES; FLUSH PRIVILEGES;
 QUIT;</​code>​ QUIT;</​code>​
Ligne 155: Ligne 155:
 [[:​Postfix]] et [[:Exim]] sont des serveurs SMTP, et demandent au minimum un gros travail de configuration. [[:​Postfix]] et [[:Exim]] sont des serveurs SMTP, et demandent au minimum un gros travail de configuration.
  
-Il existe un autre projet, **[[:sSMTP]]** qui n'est pas un serveur SMTP, plutôt un client SMTP. Il permet de se connecter à un serveur SMTP distant qui se charge de l'​envoi des messages. Sa configuration s'​apparente donc à celle d'un serveur d'​envoi dans Thunderbird.\\+Il existe un autre projet, **[[:msmtp]]** qui n'est pas un serveur SMTP, plutôt un client SMTP. Il permet de se connecter à un serveur SMTP distant qui se charge de l'​envoi des messages. Sa configuration s'​apparente donc à celle d'un serveur d'​envoi dans Thunderbird.\\
 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 msmtp, ''/​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 +
-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>​ <​code>​
-sudo chown www-data:​www-data ​/etc/msmtprc +ls -al /usr/sbin/​sendmail 
-sudo chmod 600 /etc/msmtprc+lrwxrwxrwx 1 root root 12 nov.  28  2016 /​usr/​sbin/​sendmail -> ../bin/msmtp
 </​code>​ </​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 +Pour mettre en place **msmtp**, n'​hésitez ​pas à consulter la [[:​msmtp|page ​de documentation dédiée]].
-</​note>​+
  
 ===== Problèmes courants ===== ===== Problèmes courants =====
  • lamp.1598605257.txt.gz
  • Dernière modification: Le 28/08/2020, 11:00
  • par 92.145.143.232