Stack LAMP (Apache, MariaDB, PHP) Déployez une stack LAMP complète sur VPS HolyCloud : Apache, MariaDB, PHP, virtual host, permissions et test phpinfo sécurisé. ~16 min de lecture Intermédiaire #lamp #apache #mariadb #php #hebergement Stack LAMP (Apache, MariaDB, PHP) La stack LAMP (Linux, Apache, MariaDB, PHP) héberge la majorité des CMS (WordPress, Drupal, Joomla) sur un VPS Linux HolyCloud. Ce tutoriel enchaîne l'installation des trois services, un virtual host, les modules PHP nécessaires et les bonnes pratiques de permissions. Prérequis VPS HolyCloud Ubuntu 22.04/24.04 ou Debian 12 (2 Go RAM minimum recommandé) Accès sudo Nom de domaine pointant vers l'IP du VPS (optionnel pour le test, requis pour SSL) Ports 80 et 443 ouverts (UFW + pare-feu HolyCloud) Tutoriels connexes : « Installer MariaDB », « Installer Apache HTTP Server » Conseil : pour de fortes charges PHP, préférez PHP-FPM + Apache (mpm_event) plutôt que mod_php seul ; ce guide couvre l'association classique puis FPM. Étape 1 : mise à jour et paquets de base sudo apt update sudo apt install -y apache2 mariadb-server libapache2-mod-php php php-cli php-mysql php-curl php-xml php-mbstring php-zip php-gd unzip Activez Apache : sudo systemctl enable --now apache2 sudo a2enmod rewrite ssl headers sudo systemctl reload apache2 Étape 2 : sécuriser MariaDB et créer la base CMS sudo mariadb-secure-installation Base pour WordPress (exemple) : sudo mariadb <<'EOF' CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'MotDePasseFortIci!'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES; EOF Étape 3 : répertoire du site et permissions sudo mkdir -p /var/www/exemple.fr/public_html sudo chown -R www-data:www-data /var/www/exemple.fr sudo find /var/www/exemple.fr -type d -exec chmod 755 {} \; sudo find /var/www/exemple.fr -type f -exec chmod 644 {} \; Fichier de test (à supprimer après vérification) : echo '<?php phpinfo();' | sudo tee /var/www/exemple.fr/public_html/info.php Étape 4 : virtual host Apache sudo nano /etc/apache2/sites-available/exemple.fr.conf <VirtualHost *:80> ServerName exemple.fr ServerAlias www.exemple.fr DocumentRoot /var/www/exemple.fr/public_html <Directory /var/www/exemple.fr/public_html> AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/exemple.fr-error.log CustomLog ${APACHE_LOG_DIR}/exemple.fr-access.log combined </VirtualHost> Activer le site : sudo a2ensite exemple.fr.conf sudo a2dissite 000-default.conf sudo apache2ctl configtest sudo systemctl reload apache2 Étape 5 : PHP-FPM (recommandé en production) sudo apt install -y php-fpm sudo a2dismod php8.2 2>/dev/null || sudo a2dismod php8.3 2>/dev/null || true sudo a2enconf php8.2-fpm 2>/dev/null || sudo a2enconf php8.3-fpm sudo a2enmod proxy_fcgi setenvif sudo systemctl enable --now php8.2-fpm 2>/dev/null || sudo systemctl enable --now php8.3-fpm Dans le VirtualHost, ajoutez : <FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost" </FilesMatch> Adaptez le chemin du socket (ls /run/php/). Étape 6 : pare-feu et SSL (Let's Encrypt) sudo ufw allow 'Apache Full' sudo apt install -y certbot python3-certbot-apache sudo certbot --apache -d exemple.fr -d www.exemple.fr Étape 7 : durcissement post-installation Supprimez info.php : sudo rm -f /var/www/exemple.fr/public_html/info.php Limitez l'exécution PHP dans uploads (WordPress) via .htaccess ou configuration Apache dédiée. Vérification curl -I http://127.0.0.1 curl -s http://exemple.fr/ | head -20 sudo systemctl is-active apache2 mariadb php8.2-fpm 2>/dev/null || sudo systemctl is-active php8.3-fpm mariadb -u wp_user -p -h 127.0.0.1 wordpress -e "SHOW TABLES;" Navigateur : page d'accueil du site ou écran d'installation CMS ; HTTPS valide après Certbot. Besoin d'aide HolyCloud 403 Forbidden : propriétaire www-data, DocumentRoot, Require all granted 500 + PHP : logs sudo tail -50 /var/log/apache2/exemple.fr-error.log et journalctl -u php*-fpm Base inaccessible : identifiants wp-config.php vs utilisateur MariaDB Support HolyCloud : domaine, sortie apache2ctl -S, df -h, RAM (free -h) Suite de la lecture Article précédent Serveur mail Postfix (envoi) Lire Article suivant Swap et ZRAM Lire