Logo Khaganat

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édentesRévision précédente
Prochaine révision
Révision précédente
fr:lamp [2018/04/30 15:41] – /* LEMP */ merlin8282fr:lamp [2024/02/23 08:34] (Version actuelle) – [Diverses commandes Mysql] phpmyadmin galère encore zatalyz
Ligne 1: Ligne 1:
 ====== LAMP ====== ====== LAMP ======
-LAMP est l'acronyme de Linux Apache Mysql Php.+LAMP est l'acronyme de Linux Apache Mysql Php. Il s'agit d'installer ces divers éléments afin d'avoir un serveur web fonctionnel
  
-Pour le côté "Linux" de Lamptout dépende de votre hébergement et de vos préférencesOn conseille aux débutants de prendre une Debian Stablequi est robustesécurisée et pas trop compliquéeLes experts sont aussi nombreux à rester sous cette distribution pour leurs serveurs !+À noter qu'il y a d'autres options : installer Nginx plutôt qu'ApachePostgresql plus que Mariadb (mysql), se passer de php... Mais bonLAMPc'est du classique et ça mérite de noter.
  
-Une bonne part de cette doc se base sur [[http://doc.ubuntu-fr.org/lamp|la documentation Ubuntu concernant LAMP]].+Pour le côté "Linux" de Lamp, tout dépend de votre hébergement et de vos préférences. On conseille aux débutants de prendre une Debian Stable, qui est robuste, sécurisée et pas trop compliquée. Les experts sont aussi nombreux à rester sous cette distribution pour leurs serveurs ! Nous proposons de suivre [[fr:1eres_etapes_serveur]] pour la configuration de base.
  
-Installer les paquets de base.+Ensuite installer les paquets de base.
  
 Pour Apache((Vous pouvez aussi installer autre chose, comme Nginx, mais c'est plus du "LAMP" (on parle alors de LEMP).)) : Pour Apache((Vous pouvez aussi installer autre chose, comme Nginx, mais c'est plus du "LAMP" (on parle alors de LEMP).)) :
  
   sudo apt install apache2   sudo apt install apache2
 +
 +Pour sa configuration, voir [[fr:apache]].
  
 Pour PHP Pour PHP
Ligne 23: Ligne 25:
 Pour php, les modules complémentaires sont ceux qui nous sont utiles sur Khaganat, mais suivant les CMS ils peuvent être inutiles, ou avoir besoin d'être complétés. Pour php, les modules complémentaires sont ceux qui nous sont utiles sur Khaganat, mais suivant les CMS ils peuvent être inutiles, ou avoir besoin d'être complétés.
 </WRAP> </WRAP>
- 
- 
  
 Se rendre à l'adresse du serveur et admirer la page "It works". Ça veut dire que c'est installé. Se rendre à l'adresse du serveur et admirer la page "It works". Ça veut dire que c'est installé.
  
-===== Apache ===== +<WRAP center round todo 60%> 
-Apache est en principe fonctionnel de base, mais il y a quelques petites astuces utiles pour une configuration similaire à Khaganat.+Déplacer ce qui suit sur une page dédiée. Mais cela demande aussi de revoir les infos avant ! Ce qui est indiqué est obsolète en 2023 et peut mener à des failles de sécurité ! 
 +</WRAP>
  
-==== Activer la réécriture des URLs ==== +===== Mariadb (ex mysql) ===== 
-Pour la ferme de wiki ou le pastebin (entre autre), il faut activer la réécriture des URLs+==== Installation ==== 
 +Le fonctionnement de Mariadb (remplaçant Mysqla un peu évolué et peut rendre certains tutoriels obsolètes. Entre autre, plus de mot de passe pour ''root'', qui en contrepartie n'est plus accessible que via localhostce qui casse tout pour phpmyadmin
  
-Lancez la commande +Pour rappel, pour l'installation 
-  sudo a2enmod rewrite+  sudo apt install mariadb-server mariadb-client
  
-Ensuite, éditez ''/etc/apache2/apache2.conf'' et ajoutez à la fin (s'il n'y est pas): +Un tutoriel expliquant comment configurer mariadb : [[https://www.geek17.com/fr/content/debian-9-stretch-installer-et-configurer-mariadb-65|Debian 9 Stretch : installer et configurer MariaDB]]
-<code><ifModule mod_rewrite.c> +
-RewriteEngine On +
-</ifModule></code>+
  
-Puis vérifier que dans le fichier ''/etc/apache2/sites-available/default'', l'option "AllowOverride" est sur "All" pour les parties visés par la réécriture d'url (tout le dossier /var/www pour pas se compliquer la tâche) :  +Pour résumer... lancez la commande suivante (en tant que root : ''sudo su root'', ça ne marchera pas sinonet choisissez les réponses avec précaution 
-<code>Options Indexes FollowSymLinks MultiViews +  mysql_secure_installation
-AllowOverride all +
-Order allow,deny +
-allow from all </code>+
  
-N'oubliez pas de relancer Apache :  +Pour certains soucis, les commandes suivantes peuvent aider. Ou tout casser, donc à faire uniquement si vous avez un problème. Je note ça là pour le retrouver en cas de besoin...
-  /etc/init.d/apache2 restart+
  
-==== Modifier les urls pour aller aux dossiers (Alias) ==== +<code>mysql -u root -p mysql 
-Avec une configuration basique, Apache indique qu'il faut lire le répertoire ''/var/www'' comme répertoire de base du site, chaque dossier se rajoutant à l'adresse. Par exemple si votre dossier ''www'' est organisé de la façon suivante : +SELECT plugin FROM user WHERE user='root'; 
-  * www +UPDATE user SET plugin='' WHERE user='root'; 
-    * dossier1 +FLUSH PRIVILEGES; 
-      * page1.html +EXIT;
-Alors pour accéder via le web à ''page1'' il faudra mettre dans la barre d'adresse du navigateur ''www.mon_site.net/dossier1/page1.html'' +
- +
-On change ça en faisant des alias dans le fichier ''/etc/apache2/sites-enable/000-default.conf'', de cette façon :  +
-<code> +
-Alias /adresse /var/www/dossier1 +
-<Directory /var/www/dossier1> +
- Options Indexes FollowSymLinks MultiViews +
- AllowOverride All +
- Order allow,deny +
- Allow from all +
-</Directory>+
 </code> </code>
- 
-Changez ''/adresse'' par ce que vous voulez ; si c'est juste la barre ''/'' alors ce sera la racine du site (ce qu'on verra en tapant ''www.mon_site.net/''). Vous pouvez aussi pointer vers des adresses hors de ''/var/www'' , par exemple pointer vers ''home/user/monsite'', ce qui vous permet de travailler dans un répertoire avec des droits utilisateurs basique.  
- 
-Pour un site accessible à tous, les options de cet alias sont bonnes. 
- 
-==== Relancer Apache ==== 
- 
-Pour relancer le serveur apache : 
- 
-connecté en tant que « root » 
-  /etc/init.d/apache restart  
- 
-==== Droits sur www ==== 
-Plusieurs possibilités pour permettre, en tant qu'utilisateur Lambda((oui, notre utilisateur test s'appelle "Lambda".)), de modifier ce qui se trouve dans le dossier /var/www. 
- 
-Le plus simple et rapide est d'attribuer les droits de ce dossier au groupe www-data, et de mettre lambda dans le groupe www-data. 
- 
-  sudo adduser lambda www-data 
-  chown -R www-data:www-data /var/www 
- 
-<WRAP center round info 90%>Méthode alternative : 
- 
-Pour ajouter l'utilisateur lambda à www-data, il y a aussi la commande 
-  usermod -a -G www-data lambda 
-   
-Les deux sont similaires. 
-</WRAP> 
- 
-Relancer la session pour que les droits soient pris en compte pour l'utilisateur en cours. 
- 
-<WRAP center round important 60%> 
-Il vaut mieux laisser le groupe www-data gérer les droits, de base, parce que sinon c'est un beau bazar. Ajouter l'utilisateur "lambda" dans ce groupe permet de modifier tout sans se prendre la tête. 
- 
-La sécurité voudrait sans doute que www-data n'aie pas les droits, mais cela demande de bien tout comprendre, sinon apache va juste tout bloquer. Donc, ici, faites simple. 
-</WRAP> 
- 
-Si certains cms posent problèmes, la suite de commande suivante sur le dossier en question peut réattribuer les droits à www-data et permettre de les résoudre (à lancer en étant root) : 
-  chgrp -R www-data Dossier 
-  chown -R www-data Dossier 
-  chmod -R g+w Dossier 
-   
- 
-''chgrp'' pour réaffecter le groupe propriétaire, ''chown'' pour changer le propriétaire tout court (moins important, en théorie chgrp devrait déjà régler la plupart des soucis), ''chmod'' pour donner les bonnes permissions de lecture/écriture sur le dossier (''g'' pour //groupe//, ''+'' pour //ajouter//, ''w'' pour //write//, donc "//écrire//"). L'option ''-R'' permet la récursivité (que le changement s'applique dans les sous-dossiers). 
- 
-==== Proxy ==== 
-Certains services sont accessibles via des ports particuliers. C'est ce que fait [[fr:pad|Etherpad]] par exemple : lors de son installation, il est accessible à l'adresse ''http://monserveur.com:9001'' 
- 
-Pour qu'on puisse y accéder via l'adresse web ''http://monserveur.com/pad'', il faut mettre un proxy en place dans Apache.  
- 
-Commencer par activer les modules de proxy : 
-  a2enmod proxy proxy_http 
-  
-Puis ajouter ce genre d'information dans ''/etc/apache2/sites-availables/000-default.conf'' : 
- 
-<code> 
-<VirtualHost *:80> 
- 
-  ProxyVia On 
-  ProxyRequests Off 
-  ProxyPass /pad/ http://localhost:9001/ 
-  ProxyPassReverse /pad/ http://localhost:9001/ 
-  ProxyPreserveHost on 
-  <Proxy *> 
-    Options FollowSymLinks MultiViews 
-    AllowOverride All 
-    Order allow,deny 
-    allow from all 
-  </Proxy> 
- 
-</VirtualHost></code> 
- 
-Relancez le service apache 
-  service apache2 restart 
-   
-Votre etherpad devrait être accessible à la bonne adresse ! 
-===== Mysql ===== 
 ==== Phpmyadmin ==== ==== Phpmyadmin ====
 === Installation === === Installation ===
Ligne 163: Ligne 71:
 === Localisation web === === Localisation web ===
  
-Par défaut, phpmyadmin est accessible à l’adresse ''site.net/phpmyadmin'', ce qui aide un utilisateur malveillant à trouver la porte. On peut le modifier via le fichier ''/etc/apache2/conf.d/phpmyadmin.conf'', en changeant l'alias par défaut :+Par défaut, phpmyadmin est accessible à l’adresse ''site.net/phpmyadmin'', ce qui aide un utilisateur malveillant à trouver la porte. On peut le modifier via le fichier ''/etc/apache2/conf-enabled/phpmyadmin.conf'', en changeant l'alias par défaut :
   Alias /phpmyadmin /usr/share/phpmyadmin   Alias /phpmyadmin /usr/share/phpmyadmin
 pour, par exemple : pour, par exemple :
Ligne 185: Ligne 93:
 Création d'un utilisateur et d'une base mysql pour les différents services :  Création d'un utilisateur et d'une base mysql pour les différents services : 
  
-1) lancer mysql +Ouvrir mysql en ligne de commande mysql 
   $ mysql -u root -p    $ mysql -u root -p 
 Le mot de passe sera demandé. Le mot de passe sera demandé.
  
-2) Créer la base de données : +<WRAP center round tip 100%> 
 +Pas de mot de passe ? pas de souci. Il suffit de passer en root et de se connecter directement 
 +  sudo -i 
 +  mariadb 
 + 
 +et hop vous devriez avoir le prompt. 
 +</WRAP> 
 + 
 + 
 +Lister les bases de données  
 +  show databases;  
 + 
 +Créer une base de données : 
   mysql> create database MaBaseDeDonnées ;    mysql> create database MaBaseDeDonnées ; 
  
-3) Créer un utilisateur et lui donner des droits d'accès à la base sans mot de passe mais uniquement en local : +Lister les utilisateurs : 
 +  select user,host,password from mysql.user;  
 + 
 +Créer un utilisateur et lui donner des droits d'accès à la base sans mot de passe mais uniquement en local : 
   mysql> GRANT ALL ON MaBaseDeDonnées.* TO Utilisateur@localhost ;    mysql> GRANT ALL ON MaBaseDeDonnées.* TO Utilisateur@localhost ; 
  
-3.1) Faire la même chose mais avec un mot de passe : +Faire la même chose mais avec un mot de passe : 
  
   mysql> GRANT ALL PRIVILEGES ON MaBaseDeDonnées.* TO Utilisateur@localhost IDENTIFIED BY 'MotDePasse'   mysql> GRANT ALL PRIVILEGES ON MaBaseDeDonnées.* TO Utilisateur@localhost IDENTIFIED BY 'MotDePasse'
  
-4) Ne pas oublier de mettre à jour la base : +Donner les privilèges de "tout" faire à un utilisateur. Par exemple celui de phpmyadmin, si vous avez l'erreur ''Aucun privilège pour créer des bases de données''
 +  mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION; 
 + 
 +  * ''GRANT ALL PRIVILEGES'' : Donne tous les privilèges. 
 +  * ''ON *.*'' : en principe on précise les tables ici, avec les jokers c'est sur "tout"
 +  * ''TO 'phpmyadmin'@'localhost' '' : à l'utilisateur phpmyadmin qui est sur localhost. Oui avec les apostrophes, ça semble important. 
 +  * ''WITH GRANT OPTION'' : donne à cet utilisateur le droit d'accorder aussi des privilèges. 
 + 
 +Ne pas oublier de mettre à jour la base après des modifications
  
   mysql> FLUSH PRIVILEGES;    mysql> FLUSH PRIVILEGES; 
 +
 +Ressortir du mode console :
 +  exit;
 +
 +==== Sauvegardes ====
 +Voir [[fr:sauver_serveur|Processus de sauvegarde sur un serveur]].
 +
 +===== Sources =====
 +  * [[http://doc.ubuntu-fr.org/lamp|la documentation Ubuntu concernant LAMP]].
 +
  
 {{tag>Serveur Web}} {{tag>Serveur Web}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/lamp.1525095715.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact