Magento Open Source 2.4.x s'installe le plus proprement avec Composer 2, directement depuis le dépôt officiel. Ce guide vous accompagne dans une installation neuve de la version 2.4.8 sur un serveur Debian 12 (Bookworm) géré avec Virtualmin. Il remplace intégralement notre ancien guide de 2017 (PHP 5, MySQL 5.6) par une pile à jour et sécurisée.
Prérequis
- Debian 12 avec accès root ou
sudo, géré via Virtualmin - PHP 8.3 (recommandé et pris en charge par Magento 2.4.8), FPM inclus
- Composer 2 – installé globalement ou par serveur virtuel
- MariaDB 10.6+ ou MySQL 8.0 comme base de données
- OpenSearch 2.x comme moteur de recherche obligatoire (remplace Elasticsearch)
- Des clés d'authentification valides (clé publique/privée) issues du Magento Marketplace
- Au moins 4 Go de RAM (davantage recommandé pour
setup:di:compile) et un certificat TLS valide
Remarque sur Virtualmin
Créez d'abord un serveur virtuel (domaine) dans Virtualmin. N'installez ensuite pas Magento directement à la racine public_html, mais dans un sous-dossier, puis faites pointer le véritable DocumentRoot vers son répertoire pub/. Les fichiers sensibles restent ainsi hors de la zone accessible publiquement.
Installation pas à pas
-
Installer PHP 8.3 et les extensions requises. Debian 12 fournit PHP 8.2 ; pour PHP 8.3, ajoutez le dépôt Sury largement utilisé ou utilisez les paquets fournis par Virtualmin.
sudo apt update sudo apt install -y php8.3-fpm php8.3-gd php8.3-curl php8.3-intl \ php8.3-soap php8.3-xsl php8.3-bcmath php8.3-mbstring \ php8.3-zip php8.3-xml php8.3-mysql -
Ajuster les principaux réglages PHP. Magento a besoin de limites généreuses. Définissez-les dans votre configuration FPM :
memory_limit = 2G max_execution_time = 1800 zlib.output_compression = On -
Créer la base de données et l'utilisateur de base de données. Utilisez MariaDB 10.6+ ou MySQL 8.0 :
CREATE DATABASE myDatabaseName CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER 'myDatabaseUser'@'localhost' IDENTIFIED BY 'myStrongPassword'; GRANT ALL PRIVILEGES ON myDatabaseName.* TO 'myDatabaseUser'@'localhost'; FLUSH PRIVILEGES; -
Installer et démarrer OpenSearch 2.x. Magento 2.4.8 exige impérativement un moteur de recherche en fonctionnement. Installez OpenSearch 2.x en local ou connectez une instance externe, puis notez l'hôte et le port (par défaut
9200).curl -s https://localhost:9200 -u admin:myOpenSearchPassword -k -
Vérifier Composer 2. Assurez-vous que Composer est en version majeure 2 :
composer --version -
Se placer dans le répertoire cible et récupérer Magento via Composer. Lors du premier accès à
repo.magento.com, Composer demande un nom d'utilisateur et un mot de passe – saisissez votre clé publique comme nom d'utilisateur et votre clé privée comme mot de passe (depuis le Magento Marketplace, rubrique Access Keys). Elles sont enregistrées dansauth.json.cd ~/domains/your-domain.tld/magento composer create-project --repository-url=https://repo.magento.com/ \ magento/project-community-edition:2.4.8 . -
Installer Magento. Lancez
setup:installavec vos paramètres de base de données et d'OpenSearch. Remplacez tous les espaces réservés :bin/magento setup:install \ --base-url=https://your-domain.tld/ \ --db-host=localhost \ --db-name=myDatabaseName \ --db-user=myDatabaseUser \ --db-password=myStrongPassword \ --admin-firstname=Admin \ --admin-lastname=User \ --admin-email=your@email.domain \ --admin-user=myAdminUser \ --admin-password=myStrongAdminPass1 \ --language=fr_FR \ --currency=EUR \ --timezone=Europe/Paris \ --use-rewrites=1 \ --search-engine=opensearch \ --opensearch-host=localhost \ --opensearch-port=9200 \ --opensearch-index-prefix=magento2 \ --opensearch-enable-auth=1 \ --opensearch-username=admin \ --opensearch-password=myOpenSearchPassword -
Activer le mode production et compiler les assets. Pour une boutique en production :
bin/magento deploy:mode:set production bin/magento setup:di:compile bin/magento setup:static-content:deploy fr_FR de_DE en_US bin/magento indexer:reindex bin/magento cache:flush -
Définir les bonnes permissions de fichiers. N'accordez les droits d'écriture que là où Magento en a besoin :
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + chmod u+x bin/magento
Adaptations spécifiques à Virtualmin
Sur les serveurs Virtualmin, FollowSymLinks est souvent désactivé pour des raisons de sécurité. Magento fournit dans ses fichiers .htaccess des directives qui reposent sur les liens symboliques. Dans les fichiers .htaccess concernés (à la racine et dans pub/), remplacez donc la directive :
Options +FollowSymLinks
par la variante liée au propriétaire, adaptée à Virtualmin :
Options +SymLinksIfOwnerMatch
Pour éviter que le contenu des répertoires de médias soit consultable via le listage de répertoires, désactivez également l'indexation des répertoires dans pub/media/.htaccess :
Options -Indexes
Conclusion et conseils
- Mettez en place la tâche cron de Magento (
bin/magento cron:install), car les indexeurs, les e-mails et la réindexation en dépendent. - Imposez le HTTPS partout et vérifiez régulièrement votre certificat TLS.
- Maintenez Magento, PHP et OpenSearch à jour avec les correctifs de sécurité.
Vous êtes bloqué ou préférez confier l'installation et la maintenance à des mains expérimentées ? Contactez-nous – nous serons ravis de vous aider.