Accueil > Skiantoù > Stlenneg > Configuration d’une machine virtuelle Fedora avec stack LAMP

Configuration d’une machine virtuelle Fedora avec stack LAMP

lundi 24 août 2026, par Lionel PLAIS

Toutes les versions de cet article : [brezhoneg] [français]

Voici le parcours complet, de la VM vide jusqu’à une pile Apache + PHP + MariaDB fonctionnelle sous Fedora Server. Je détaille surtout les points qui piègent (clavier, réseau à l’installation, SELinux), le reste va vite vu que tu as déjà les réflexes côté DietPi.

1. Créer la VM dans VirtualBox

Télécharge l’ISO Fedora Server — version actuelle : Fedora Linux 44, sortie le 28 avril 2026 [Wikipedia]. Ta version de VirtualBox devrait être en branche 7.2, dernière révision 7.2.14 du 21 juillet 2026. [Oracle VirtualBox]

Dans l’assistant de création de VM :

  • Nom : fedora-lamp (ou ce que tu veux) — Type : Linux — Version : Fedora (64-bit). Si elle n’apparaît pas dans la liste de ta version, prends « Linux 2.6 / 3.x / 4.x / 5.x / 6.x (64-bit) », le résultat est identique.
  • Mémoire vive : 4096 Mo (2 Go suffiraient pour Fedora seul, mais Apache + PHP-FPM + MariaDB en simultané apprécient la marge).
  • Processeurs : 2 vCPU.
  • Disque dur : VDI, alloué dynamiquement, 32 Go.
  • Si VirtualBox propose une « Installation sans assistance » au moment d’attacher l’ISO, décoche-la : ça te laisse la main sur le clavier BÉPO, le compte utilisateur et le réseau pendant l’installeur Anaconda plutôt que de tout automatiser à l’aveugle.
  • Réseau (Adaptateur 1), deux options selon l’usage :
    • NAT + redirection de port — pratique pour une VM isolée. Réseau → Adaptateur 1 → NAT → Avancé → Redirection de ports : hôte 8080 → invité 80, et si tu veux du SSH, hôte 2222 → invité 22.
    • Accès par pont (Bridged) — la VM prend une IP directement sur ton LAN, comme ton DietPi, joignable depuis d’autres machines du réseau.

Attache l’ISO au lecteur optique virtuel et démarre.

2. Installation de Fedora Server (Anaconda)

  • Écran de boot → Install Fedora Server .
  • Disposition du clavier : dans « Keyboard Layout », ajoute le BÉPO (French (Bépo)) — sinon tu retrouves le même type de souci de correspondance clavier qu’à l’époque du pré-boot LUKS sur Parrot.
  • Destination d’installation : partitionnement automatique, largement suffisant pour une VM.
  • Réseau et nom d’hôte — c’est LE piège classique : contrairement à Workstation, Fedora Server désactive l’interface Ethernet par défaut à l’installation. Bascule le commutateur sur ON et fixe un nom d’hôte, sinon tu n’as aucune IP au premier démarrage.
  • Utilisateur : crée un compte avec « Rendre cet utilisateur administrateur » coché (groupe wheel). Tu peux laisser le compte root verrouillé si tu ne comptes pas t’en servir directement.
  • Lance l’installation, redémarre (VirtualBox éjecte l’ISO automatiquement, sinon retire-la depuis Périphériques).

3. Premier démarrage

sudo dnf update -y
ip a          # récupérer l'IP si tu es en pont

Fedora Server embarque Cockpit par défaut, accessible sans rien configurer sur https://<IP>:9090 si tu veux une vue web des services en plus du terminal.

4. Apache (httpd)

sudo dnf install httpd -y
sudo systemctl enable --now httpd
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload

Test : http://<IP-VM>/ (pont) ou http://localhost:8080/ (NAT) — tu dois voir la page de test Apache/Fedora.

5. PHP — via PHP-FPM (mod_php n’existe plus)

Fedora a retiré mod_php de ses paquets PHP depuis plusieurs versions déjà ; php-fpm est désormais le seul mode d’exécution proposé, [ComputingForGeeks] [The Fedora Project] y compris pour un usage Apache classique. Tu vas retrouver les réflexes de ta stack PHP-FPM multi-version sur DietPi.

sudo dnf install php-fpm php-cli php-mysqlnd php-gd php-mbstring php-xml php-opcache -y
sudo systemctl enable --now php-fpm
sudo systemctl restart httpd

Fedora câble automatiquement php-fpm comme moteur PHP d’Apache via un drop-in systemd dédié, [ComputingForGeeks] et la configuration qui en résulte est fournie par le paquet php-fpm lui-même, dans /etc/httpd/conf.d/php.conf [LinuxCapable] : aucune VirtualHost ni SetHandler à écrire à la main pour un usage basique. Fedora 44 fournit PHP 8.5 [LinuxCapable] en dépôt natif, pas besoin du dépôt Remi pour rester en version stock.

Test :

echo '<?php phpinfo();' | sudo tee /var/www/html/info.php

http://<IP-VM>/info.php

6. MariaDB

Fedora 44 fournit MariaDB 11.8 LTS [ComputingForGeeks] en dépôt natif.

sudo dnf install mariadb-server -y
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

Base et utilisateur dédiés :

sudo mysql -u root -p
CREATE DATABASE lamp_test;
CREATE USER 'lamp_user'@'127.0.0.1' IDENTIFIED BY 'MotDePasseSolide!';
GRANT ALL PRIVILEGES ON lamp_test.* TO 'lamp_user'@'127.0.0.1';
FLUSH PRIVILEGES;
EXIT;

7. Vérification bout en bout + SELinux

Un point qui va te rappeler tes soucis SELinux avec Autopsy/IPED sous Fedora : SELinux bloque par défaut les connexions réseau sortantes de httpd/php-fpm, [ComputingForGeeks] y compris vers MariaDB en local via TCP. Le contexte httpd_sys_content_t de /var/www/html est correct par défaut (rien à faire tant que tu ne copies pas de fichiers depuis un autre chemin — sinon sudo restorecon -Rv /var/www/html remet les choses en ordre), mais la connexion réseau vers la base nécessite explicitement :

sudo setsebool -P httpd_can_network_connect_db 1

Script de test (/var/www/html/test-db.php) — utilise bien 127.0.0.1 et non localhost : avec mysqli, localhost force systématiquement le mode socket local plutôt que le TCP [ComputingForGeeks] :

<?php
$mysqli = new mysqli('127.0.0.1', 'lamp_user', 'MotDePasseSolide!', 'lamp_test');
if ($mysqli->connect_errno) {
    die('Connexion échouée : ' . $mysqli->connect_error);
}
echo 'Connexion MariaDB OK, version serveur : ' . $mysqli->server_info;

http://<IP-VM>/test-db.php doit afficher la version du serveur MariaDB.

Pour aller plus loin

  • Snapshot juste après l’installation de Fedora (avant les paquets) : point de retour propre si un dnf ou une manip SELinux tourne mal.
  • Automatisation : vu ton setup Vagrant/Ansible pour Kali, la même logique marche ici (box Fedora + playbook httpd/php-fpm/mariadb) si tu veux une VM reproductible/jetable plutôt que cliquée à la main.

Dis-moi si tu veux creuser un point précis : vhosts pour plusieurs sites, HTTPS avec Let’s Encrypt comme sur ton DietPi, ou carrément le Vagrantfile/playbook.