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 [2016/09/14 08:52] – modification externe 127.0.0.1fr: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.
  
-  sudo apt-get install apache2 php5 mariadb-server libapache2-mod-php5 php5-mysql apache2-utils php5-gd php5-imagick+Pour Apache((Vous pouvez aussi installer autre chose, comme Nginx, mais c'est plus du "LAMP" (on parle alors de LEMP).)) :
  
-L'installation de la base mysql va demander la création d'un mot de passe pour "root". Notez-le bien !+  sudo apt install apache2
  
-<WRAP center round info 60%> +Pour sa configurationvoir [[fr:apache]].
-Vous pouvez installer Mysql au lieu de Mariadbmais c'est moins bien... +
-</WRAP>+
  
-Se rendre à l'adresse du serveur et admirer la page "It works". Ça veut dire que c'est installé.+Pour PHP 
 +  sudo apt install php php-gd php-imagick php-mcrypt php-curl php-intl
  
-===== Apache ===== +Pour Mariadb((Vous pouvez installer Mysql au lieu de Mariadb, mais c'est moins bien...)) 
-Apache est en principe fonctionnel de base, mais il y a quelques petites astuces utiles pour une configuration similaire à Khaganat.+  sudo apt install mariadb-server mariadb-client
  
-==== Activer la réécriture des URLs ==== +<WRAP center round info 90%> 
-Pour la ferme de wiki ou le pastebin (entre autre), il faut activer la réécriture des URLs+Ces paquets installent les autres dépendances utiles
  
-Lancez la commande : +Pour php, les modules complémentaires sont ceux qui nous sont utiles sur Khaganatmais suivant les CMS ils peuvent être inutilesou avoir besoin d'être complétés.
-  sudo a2enmod rewrite +
- +
-Ensuite, éditez ''/etc/apache2/apache2.conf'' et ajoutez à la fin (s'il n'y est pas): +
-<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) :  +
-<code>Options Indexes FollowSymLinks MultiViews +
-AllowOverride all +
-Order allow,deny +
-allow from all </code> +
- +
-N'oubliez pas de relancer Apache :  +
-  /etc/init.d/apache2 restart +
- +
-==== Modifier les urls pour aller aux dossiers (Alias) ==== +
-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 : +
-  * www +
-    * dossier1 +
-      * page1.html +
-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> +
- +
-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 permettreen tant qu'utilisateur Lambda((ouinotre 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> </WRAP>
  
-Relancer la session pour que les droits soient pris en compte pour l'utilisateur en cours. +Se rendre à l'adresse du serveur et admirer la page "It works"Ça veut dire que c'est installé.
- +
-<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 center round todo 60%> 
 +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> </WRAP>
  
-Si certains cms posent problèmesla 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) : +===== Mariadb (ex mysql) ===== 
-  chgrp -R www-data Dossier +==== Installation ==== 
-  chown -R www-data Dossier +Le fonctionnement de Mariadb (remplaçant Mysql) a un peu évolué et peut rendre certains tutoriels obsolètes. Entre autreplus de mot de passe pour ''root'', qui en contrepartie n'est plus accessible que via localhost, ce qui casse tout pour phpmyadmin. 
-  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).+Pour rappel, pour l'installation : 
 +  sudo apt install mariadb-server mariadb-client
  
-==== Proxy ==== +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]]
-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. +Pour résumer... lancez la commande suivante (en tant que root : ''sudo su root'', ça ne marchera pas sinon) et choisissez les réponses avec précaution : 
 +  mysql_secure_installation
  
-Commencer par activer les modules de proxy : +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...
-  a2enmod proxy proxy_http +
-  +
-Puis ajouter ce genre d'information dans ''/etc/apache2/sites-availables/000-default.conf'' :+
  
-<code> +<code>mysql -u root -p mysql 
-<VirtualHost *:80> +SELECT plugin FROM user WHERE user='root'; 
- +UPDATE user SET plugin='' WHERE user='root'; 
-  ProxyVia On +FLUSH PRIVILEGES; 
-  ProxyRequests Off +EXIT; 
-  ProxyPass /pad/ http://localhost:9001/ +</code>
-  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 153: 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 175: 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.1473835963.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact