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 17/07/2018, 10:53]
krodelabestiole correction lien apache
lamp [Le 04/04/2023, 17:24] (Version actuelle)
krodelabestiole [Envoi de courriel] plus de ref à ssmtp
Ligne 1: Ligne 1:
 {{tag>​serveur }} {{tag>​serveur }}
-----+
 ====== Serveur web - LAMP ======= ====== Serveur web - LAMP =======
  
Ligne 14: Ligne 14:
 ===== 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 20: Ligne 20:
 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 libapache2-mod-php mysql-server 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 libapache2-mod-php mariadb-server php-mysql</​code>​ +<code bash>​sudo apt install ​apache2 php libapache2-mod-php mariadb-server php-mysql</​code>​
  
 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 48: 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, 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 82: 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 92: 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''​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 111: 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 117: Ligne 126:
 sudo systemctl reload apache2</​code>​ sudo systemctl reload apache2</​code>​
  
-Pour plus de détails, consultez la documentation //​[[:​apache2#​creation_d_hotes_virtuels|création ​d'​hôtes virtuels]]//​.+<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é ==== ==== 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 145: 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 +<​code>​ 
-lrwxrwxrwx 1 root root 5 Jul 15  2014 /​usr/​sbin/​sendmail -> ssmtp</​code>​+ls -al /​usr/​sbin/​sendmail 
 +lrwxrwxrwx 1 root root 12 nov.  28  2016 /​usr/​sbin/​sendmail -> ../​bin/​msmtp 
 +</​code>​ 
 + 
 +Pour mettre en place **msmtp**, n'​hésitez pas à consulter la [[:​msmtp|page de documentation dédiée]].
  
 ===== Problèmes courants ===== ===== Problèmes courants =====
Ligne 167: Ligne 181:
 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-server\* mariadb-server\* +
-sudo mv /​var/​lib/​mysql /​var/​lib/​mysql_bak +
-sudo mv /etc/mysql /​etc/​mysql_bak +
-sudo mkdir /etc/mysql /​etc/​mysql/​conf.d +
-sudo apt clean</​code>​ +
-Vous pouvez ensuite choisir d'​installer ​[[:MySQL]] ou [[:MariaDB]] ​+
-<​code>​sudo apt install mysql-server</​code>​ +
-**__ou__** +
-<​code>​sudo apt install mariadb-server</​code>​ +
 ===== Voir aussi ===== ===== Voir aussi =====
  
Ligne 185: Ligne 188:
   * [[: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.1531817597.txt.gz
  • Dernière modification: Le 17/07/2018, 10:53
  • par krodelabestiole