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 [2020/11/13 08:27] – Correction de détails zatalyzfr: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).)) :
Ligne 12: Ligne 12:
   sudo apt install apache2   sudo apt install apache2
  
-Voir aussi [[fr:securite_sysadmin#apache2|Sécurité : Apache2]]+Pour sa configuration, voir [[fr:apache]].
  
 Pour PHP Pour PHP
Ligne 28: Ligne 28:
 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é !
- +
-==== Activer la réécriture des URLs ==== +
-Pour la ferme de wiki ou le pastebin (entre autre), il faut activer la réécriture des URLs.  +
- +
-Lancez la commande : +
-  sudo a2enmod rewrite +
- +
-<WRAP center round help 60%> +
-Obsolète ? activer le module devrait suffire, puis ajouter l'option dans les vhost qui le demandent... +
- +
-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>+
 </WRAP> </WRAP>
  
- 
-Puis vérifier que dans le fichier ''/etc/apache2/sites-available/monsite.conf'', 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 :  
-  sudo apachectl -t && sudo apachectl graceful 
- 
-==== 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 ==== 
-Vérifier avant tout que la syntaxe est propre : 
- 
-  sudo apachectl -t 
- 
-Pour relancer le serveur apache : 
- 
-  sudo apachectl graceful 
- 
-Doc d'Apache : Redémarre le démon Apache httpd en douceur. Si le démon n'est pas en cours d'exécution, il est démarré. À la différence d'un redémarrage normal, les connexions en cours ne sont pas fermées. Comme effet de bord, les anciens fichiers journaux ne seront pas fermés immédiatement. Cela signifie que si l'on utilise un script de rotation des journaux, un délai suffisant sera nécessaire afin d'être sûr que les fichiers journaux seront bien fermés avant leur traitement par le script de rotation. Cette option vérifie automatiquement les fichiers de configuration (de la même manière que l'option configtest ) avant de lancer le redémarrage, afin d'être sûr que le fonctionnement du démon ne sera pas compromis. Équivalent à apachectl -k graceful. 
- 
- 
-==== 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/monsite.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 
-  sudo apachectl -t && sudo apachectl graceful 
-   
-Votre etherpad devrait être accessible à la bonne adresse ! 
 ===== Mariadb (ex mysql) ===== ===== Mariadb (ex mysql) =====
 ==== Installation ==== ==== Installation ====
Ligne 192: 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 217: Ligne 96:
   $ mysql -u root -p    $ mysql -u root -p 
 Le mot de passe sera demandé. Le mot de passe sera demandé.
 +
 +<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  Lister les bases de données 
Ligne 233: Ligne 121:
  
   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'
 +
 +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:  Ne pas oublier de mettre à jour la base après des modifications: 
Ligne 243: Ligne 139:
 ==== Sauvegardes ==== ==== Sauvegardes ====
 Voir [[fr:sauver_serveur|Processus de sauvegarde sur un serveur]]. 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.1605252447.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact