Skip to content
Learni
Voir tous les tutoriels
DevOps

Comment installer AlmaLinux et configurer un serveur LAMP en 2026

Read in English

Introduction

AlmaLinux est une distribution Linux enterprise-grade gratuite, fork 1:1 de Red Hat Enterprise Linux (RHEL), idéale pour les serveurs en production. Lancée en 2021 comme alternative stable à CentOS, elle garantit 10 ans de support LTS sans coût de licence. Pourquoi choisir AlmaLinux en 2026 ? Sa compatibilité binaire avec RHEL permet d'utiliser les mêmes outils (dnf, systemd) et paquets RPM, tout en évitant les pièges des distributions instables comme Ubuntu pour les environnements critiques.

Ce tutoriel beginner vous guide pas à pas : installation dans une machine virtuelle, mise à jour sécurisée, configuration d'un stack LAMP (Linux, Apache, MariaDB, PHP) fonctionnel. À la fin, vous aurez un serveur web prêt à déployer une app PHP, avec firewall actif et bonnes pratiques de sécurité. Imaginez comme assembler un puzzle : on commence par les bases (OS propre), on ajoute les pièces (services), et on sécurise l'ensemble. Temps estimé : 45 minutes. Parfait pour les devs qui veulent un serveur fiable sans courbe d'apprentissage raide.

Prérequis

  • Machine virtuelle : VirtualBox ou VMware Workstation (gratuit), avec 2 Go RAM, 20 Go disque, 2 CPU.
  • ISO AlmaLinux : Téléchargez la version 9.4 Minimal depuis get.almalinux.org (SHA256 vérifié pour sécurité).
  • Outils hôte : Rufus (Windows) ou dd (Linux/Mac) pour créer une clé USB bootable.
  • Connaissances de base en ligne de commande (sudo, éditeurs comme nano).
  • Accès internet sur la VM.

Installation et première connexion

post-install.sh
#!/bin/bash
# Connectez-vous en root ou utilisez sudo
sudo dnf clean all
sudo dnf update -y
sudo dnf upgrade -y
sudo reboot

Après boot sur l'ISO AlmaLinux dans votre VM (suivez l'assistant Anaconda : langue FR, partition auto, root password fort), exécutez ce script pour nettoyer le cache, mettre à jour tous les paquets et redémarrer. Cela applique les derniers correctifs de sécurité et patches kernel, évitant les vulnérabilités zero-day. Piège courant : oublier le '-y' pour automatiser les confirmations.

Activer le firewall de base

AlmaLinux utilise firewalld par défaut, plus flexible que iptables. On l'active et ouvre les ports essentiels (SSH:22, HTTP:80, HTTPS:443) pour un serveur web accessible. Cela bloque tout trafic non autorisé dès le démarrage, comme une porte verrouillée avec whitelist.

Configuration firewalld

firewall-setup.sh
#!/bin/bash
sudo systemctl enable firewalld
sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Ce script active firewalld au boot, démarre le service, ajoute les services standards (pas de ports manuels pour éviter erreurs), recharge et liste les règles. Vérifiez avec 'sudo firewall-cmd --list-all' : vous verrez ssh, http/https ouverts. Piège : oublier --permanent, les règles disparaissent au reboot.

Installer Apache HTTP Server

Apache (httpd) est le serveur web par défaut sur AlmaLinux, modulaire et performant pour PHP. On l'installe depuis les repos officiels, configure un VirtualHost et teste. Analogie : comme poser les fondations d'une maison avant les murs.

Installation et config Apache

apache-install.sh
#!/bin/bash
sudo dnf install httpd -y
sudo systemctl enable httpd
sudo systemctl start httpd
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload

Installe httpd, l'active au boot, le démarre et rouvre les ports firewall. Accédez à http://IP_VM : page 'Apache HTTP Server Test Page' confirme. Piège : SELinux bloque parfois ; vérifiez avec 'sudo ausearch -m avc -ts recent' et autorisez si besoin via semanage.

VirtualHost personnalisé

/etc/httpd/conf.d/monapp.conf
<VirtualHost *:80>
    ServerName monapp.example.com
    DocumentRoot /var/www/monapp
    <Directory /var/www/monapp>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /var/log/httpd/monapp_error.log
    CustomLog /var/log/httpd/monapp_access.log combined
</VirtualHost>

# Créer le dossier et tester
sudo mkdir -p /var/www/monapp
sudo chown -R apache:apache /var/www/monapp
echo "<?php phpinfo(); ?>" | sudo tee /var/www/monapp/index.php
sudo systemctl restart httpd

Ce fichier conf complet définit un vhost isolé pour 'monapp', avec logs dédiés et .htaccess activé. Le bash inline crée le dossier, assigne apache comme owner et ajoute un index.php de test. Redémarrez httpd ; accédez via IP pour voir phpinfo(). Piège : mauvais ownership cause 403 Forbidden.

Installer MariaDB et PHP

MariaDB remplace MySQL (drop-in compatible), optimisé pour AlmaLinux. PHP 8.3+ via module Remi pour perf. Sécurisez la DB post-install comme un coffre-fort.

Installation MariaDB

mariadb-install.sh
#!/bin/bash
sudo dnf install mariadb-server -y
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation

Installe MariaDB, active/démarre, puis lance l'installateur interactif : set root PW fort, supprime users anon/test, disable remote root. Sortie exemple : 'All done!'. Piège : ignorer secure_installation laisse DB vulnérable aux attaques.

Installation PHP 8.3

php-install.sh
#!/bin/bash
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
sudo dnf module enable php:remi-8.3 -y
sudo dnf install php php-mysqlnd php-fpm php-gd php-xml -y
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
sudo setsebool -P httpd_exec_mod on
sudo systemctl restart httpd

Active repo Remi pour PHP moderne, installe core + extensions courantes (mysqlnd pour DB), active FPM pour perf, autorise exec SELinux. Recharge httpd. Testez phpinfo() : version 8.3 confirmée. Piège : sans Remi, PHP 8.0 obsolète ; SELinux bloque sans setsebool.

Vérification finale du stack LAMP

Créez une DB test : mysql -u root -p, CREATE DATABASE testdb; SHOW DATABASES;. Upload un script PHP connecté DB dans /var/www/monapp. Votre serveur LAMP est live ! Accès : http://IP_VM/monapp/index.php.

Bonnes pratiques

  • Mots de passe forts : Utilisez pwgen ou diceware ; stockez en KeePass.
  • Updates automatisées : sudo dnf install dnf-automatic ; sudo systemctl enable --now dnf-automatic.timer pour patches sécurité.
  • SSH clés only : sudo install -m 700 -d /root/.ssh ; ssh-keygen et éditez /etc/ssh/sshd_config (PasswordAuthentication no).
  • Logs rotation : Vérifiez logrotate.conf pour httpd/mariadb.
  • Backups : rsync /var/www vers offsite hebdo.

Erreurs courantes à éviter

  • Oubli sudo : 80% des 'permission denied' ; toujours prefixer.
  • Firewall non rechargé : Règles --permanent sans --reload = invisibles.
  • SELinux en permissive : Ne désactivez jamais (setenforce 0) ; utilisez audit2allow.
  • PHP sans FPM : Mod_php obsolète ; FPM isole les processes.

Pour aller plus loin

  • Docs officielles : AlmaLinux Wiki.
  • Avancé : Docker/Podman sur Alma, Nginx au lieu Apache.
  • Formations Learni DevOps : Maîtrisez Ansible pour automatiser 10x plus vite.
  • Communauté : Forum AlmaLinux Discord.