Installation LAMP

lamp 3 nov. 2022

On entre directement dans le vif du sujet avec la base de tout : l'installation d'un environnement serveur.

Pourquoi faire ce tuto alors que je propose ce type de services sur mon site principal ?

Hé bien j'estime que si vous comprenez ce que j'explique ci-dessous vous n'aurez pas besoin de mes services (ou peut-être pour de la maintenance ou du dépannage 😀).

Vous trouverez donc ci-après toutes les étapes pour une installation LAMP (Linux Apache MariaDB PHP) pour un serveur fonctionnel.

Je me baserai sur un serveur AlmaLinux 9 (fork de CentOS) que j'utilise au quotidien.

La première étape est, une fois le serveur fraichement installé, d'activer le dépôt EPEL qui propose de nombreux paquets supplémentaires :

dnf -y install epel-release

Mettez ensuite à jour le cache interne de dnf (le gestionnaire de paquets) après l'avoir nettoyé :

dnf clean all && dnf makecache

On fait une mise à jour du système :

dnf -y update

Profitez-en pour passer toute l'interface du shell en français :

dnf -y install glibc-langpack-fr
localectl set-locale LANG=fr_FR.UTF-8
localectl set-keymap fr
timedatectl set-timezone Europe/Paris

Une fois que toutes ces bases sont prêtes, nous pouvons passer à l'installation du serveur web, qui d'ailleurs ne s'appelle pas Apache sur CentOS et tous ses forks mais httpd :

dnf -y install httpd httpd-tools mod_ssl

Vous pouvez maintenant l'activer au démarrage puis le démarrer :

systemctl enable httpd && systemctl start httpd

Pour confirmer son statut :

systemctl status httpd

La mention active en vert vous indique qu'il est bien démarré :

En visitant l'adresse IP de votre serveur vous aurez alors une page indiquant :

This page is used to test the proper operation of the HTTP server after it has been installed.
If you can read this page, it means that the HTTP server installed at this site is working properly.

Cela vous prouve que le serveur est bien opérationnel.

Pour trouver cette adresse IP, il suffit d'utiliser la commande suivante :

hostname -I | awk '{print $1}'

Si rien ne s'affiche ou que vous obtenez un message de connexion refusée, c'est que le pare-feu par défaut, firewalld, est actif.

Pour le désactiver et empêcher qu'une autre application ne puisse le lancer :

systemctl disable firewalld && systemctl stop firewalld && systemctl mask firewalld

Nous utiliserons plus tard iptables.

En cas de soucis, toujours par rapport à l'affichage de cette page de test d'Apache, vous pouvez changer la politique de sécurité SELinux en éditant le fichier suivant :

/etc/selinux/config

Modifiez la valeur de SELINUX par disabled :

Redémarrez ensuite le serveur :

systemctl reboot

On passe ensuite à l'installation de php-fpm via les dépôts de remi :

dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
dnf -y module reset php
dnf -y module install php:remi-8.1

Activez le démarrage automatique de php-fpm :

systemctl enable php-fpm && systemctl start php-fpm

Vous pouvez maintenant vérifier la version installée avec php -v :

Il vous faut maintenant éditer le fichier /etc/php-fpm.d/www.conf et remplacer quelques paramètres s'ils ne correspondent pas aux suivants :

user = apache
group = apache
listen = /run/php-fpm/www.sock
listen.owner = apache
listen.group = apache
listen.mode = 0660
listen.allowed_clients = 127.0.0.1
pm = dynamic

Redémarrez ensuite le service php-fpm :

systemctl restart php-fpm

Et enfin, redémarrez Apache :

systemctl restart httpd

Pour vérifier que tout s'est bien déroulé, vous pouvez créer un fichier info.php et le visiter via http://ip-du-serveur/info.php :

echo "<?php phpinfo(); ?>" > /var/www/html/info.php

N'oubliez pas de supprimer ce fichier info.php pour des raisons de sécurité :

rm -f /var/www/html/info.php

La dernière étape est d'installer un serveur de bases de données.
Nous utiliserons pour cela MariaDB, un fork optimisé de MySQL et pleinement compatible avec ce dernier.

Pour installer le dépôt de MariaDB, créez d'abord un fichier /etc/yum.repos.d/MariaDB.repo et collez-y les lignes suivantes :

# MariaDB 11.1 CentOS repository list - created 2023-10-12 05:58 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://mirror.mva-n.net/mariadb/yum/11.1/rhel/$releasever/$basearch
gpgkey = https://mirror.mva-n.net/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1

Ensuite, lancez l'installation :

dnf -y install MariaDB-server MariaDB-client

Configurez le lancement de MariaDB en même temps que votre serveur :

systemctl enable mariadb && systemctl start mariadb

Dernière étape très importante, sécuriser l'installation de MariaDB :

mariadb-secure-installation

L'assistant vous posera plusieurs questions, notamment de créer le mot de passe de l'administrateur, donc l'utilisateur root ayant tous les droits sur MariaDB :

Enter current password for root (enter for none): << Appuyez sur entrée
OK, successfully used password, moving on...
...
Switch to unix_socket authentication [Y/n] << Entrez n
...
Set root password? [Y/n] << Entrez Y
New password: << Entrez le nouveau mot de passe
Re-enter new password: << Confirmez-le
Password updated successfully!
Reloading privilege tables...
...Success!
...
Remove anonymous users? [Y/n] << Entrez Y
Disallow root login remotely? [Y/n] << Entrez Y
Remove test database and access to it? [Y/n] << Entrez Y
Reload privilege tables now? [Y/n] << Entrez Y

Voilà, vous avez maintenant un serveur LAMP fonctionnel et prêt à accueillir vos applications et sites.

Nous verrons dans un prochain article comment installer et configurer iptables afin de protéger votre serveur contre les attaques externes.

Si vous avez un commentaire, une correction, ou tout autre point à aborder, n'hésitez pas à vous inscrire et à poster ci-dessous !

Mots clés

Samuel

Passionné par le web et les serveurs, je vous fais découvrir toutes sortes de news, de tutos, de scripts et autres points relatifs à cet univers sans limite !