====== LAMP ======
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.
À noter qu'il y a d'autres options : installer Nginx plutôt qu'Apache, Postgresql plus que Mariadb (mysql), se passer de php... Mais bon, LAMP, c'est du classique et ça mérite de noter.
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.
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).)) :
sudo apt install apache2
Pour sa configuration, voir [[fr:apache]].
Pour PHP
sudo apt install php php-gd php-imagick php-mcrypt php-curl php-intl
Pour Mariadb((Vous pouvez installer Mysql au lieu de Mariadb, mais c'est moins bien...))
sudo apt install mariadb-server mariadb-client
Ces paquets installent les autres dépendances utiles.
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.
Se rendre à l'adresse du serveur et admirer la page "It works". Ça veut dire que c'est installé.
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é !
===== Mariadb (ex mysql) =====
==== Installation ====
Le fonctionnement de Mariadb (remplaçant Mysql) a 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 localhost, ce qui casse tout pour phpmyadmin.
Pour rappel, pour l'installation :
sudo apt install mariadb-server mariadb-client
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]]
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
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...
mysql -u root -p mysql
SELECT plugin FROM user WHERE user='root';
UPDATE user SET plugin='' WHERE user='root';
FLUSH PRIVILEGES;
EXIT;
==== Phpmyadmin ====
=== Installation ===
Phpmyadmin est considéré comme une potentielle faille de sécurité et s'en passer serait mieux. En même temps, se passer de base de données serait l'idéal...
Bref, en dépit de ces considérations, phpmyadmin est une façon bien pratique de gérer une base de donnée quand on a peu de connaissances, parce que ça assiste bien le travail. Donc... on va tenter de l'installer.
sudo apt-get install phpmyadmin
Sélectionner "apache" dans les options, puis pour la base de donnée, le laisser faire.
Veuillez indiquer le mot de passe pour le compte d'administration qui servira à créer la base de données MySQL ainsi que les utilisateurs.
Mot de passe de l'administrateur de la base de données :
C'est le mot de passe root.
Choisissez le mot de passe de la base de donnée... et n'oubliez pas de le faire passer de façon sécurisée aux autres admins.
=== 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-enabled/phpmyadmin.conf'', en changeant l'alias par défaut :
Alias /phpmyadmin /usr/share/phpmyadmin
pour, par exemple :
Alias /ploufphpmyadmin /usr/share/phpmyadmin
Le simple ajout du "plouf" devant devrait déjà éviter les attaques automatiques !
Relancer Apache pour que ce soit pris en compte.
Avoir un autre login que "root" serait aussi bien. Mais peut-on le changer facilement ?
=== Importer une base de donnée ===
Pour importer une base de donnée via phpmyadmin (par exemple celle du forum, sauvée avant), il faut créer la base, lui associer un utilisateur qui aura les accès sur cette base uniquement, puis importer le ''.sql'' sauvegardé.
Si la base est trop grosse, il y aura une erreur. Modifier /etc/php5/apache2/php.ini pour augmenter la taille maximale autorisée. phpmyadmin fait une erreur mettant en lien ce qu'il faut modifier.
==== Diverses commandes Mysql====
Création d'un utilisateur et d'une base mysql pour les différents services :
Ouvrir mysql en ligne de commande mysql
$ mysql -u root -p
Le mot de passe sera demandé.
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.
Lister les bases de données
show databases;
Créer une base de données :
mysql> create database MaBaseDeDonnées ;
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 ;
Faire la même chose mais avec un mot de passe :
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:
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}}