Installer Sylius : le guide pas-a-pas avec Symfony 7 et PHP 8.3
Ce guide vous accompagne pas a pas dans l'installation de Sylius 2.x sur un environnement de developpement local avec Symfony 7 et PHP 8.3. De la verification des prerequis a la creation du premier produit, chaque etape est detaillee avec les commandes exactes et les solutions aux erreurs courantes.
Prerequis
Avant de commencer, verifiez que votre environnement dispose des outils suivants.
PHP 8.3+
Sylius 2.x exige PHP 8.3 au minimum. Verifiez votre version :
php -v
# PHP 8.3.x (cli)
Extensions PHP requises :
php -m | grep -E "intl|gd|exif|fileinfo|mbstring|json|xml|curl|zip|sodium"
Si des extensions manquent, installez-les. Sur Ubuntu/Debian :
sudo apt install php8.3-intl php8.3-gd php8.3-xml php8.3-curl php8.3-zip php8.3-mbstring php8.3-mysql php8.3-pgsql
Sur macOS avec Homebrew :
brew install php@8.3
# Les extensions courantes sont incluses par defaut
Composer 2.x
composer --version
# Composer version 2.7.x
Si Composer n'est pas installe :
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Node.js 20+ et gestionnaire de packages
node -v
# v20.x.x ou superieur
npm -v
# ou: yarn -v
Base de donnees
MySQL 8.0+ ou PostgreSQL 14+. Verifiez que le serveur est en cours d'execution :
# MySQL
mysql -u root -p -e "SELECT VERSION();"
# PostgreSQL
psql -U postgres -c "SELECT version();"
Symfony CLI (recommande)
curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash
sudo apt install symfony-cli
# Verifier la compatibilite du systeme
symfony check:requirements
Installation avec Composer
Creez un nouveau projet Sylius avec Composer :
composer create-project sylius/sylius-standard mon-projet-sylius
cd mon-projet-sylius
Cette commande telecharge Sylius et toutes ses dependances. L'operation prend 2 a 5 minutes selon votre connexion.
Si vous rencontrez une erreur memoire :
php -d memory_limit=-1 /usr/local/bin/composer create-project sylius/sylius-standard mon-projet-sylius
Configuration de la base de donnees
Editez le fichier .env.local a la racine du projet (creez-le s'il n'existe pas) :
Pour MySQL
# .env.local
DATABASE_URL="mysql://root:password@127.0.0.1:3306/sylius_dev?serverVersion=8.0&charset=utf8mb4"
Pour PostgreSQL
# .env.local
DATABASE_URL="postgresql://postgres:password@127.0.0.1:5432/sylius_dev?serverVersion=16&charset=utf8"
Puis creez la base de donnees et executez les migrations :
# Creer la base de donnees
php bin/console doctrine:database:create
# Executer le schema (premiere installation)
php bin/console doctrine:schema:create
# OU executer les migrations (si elles existent)
php bin/console doctrine:migrations:migrate --no-interaction
Installation des fixtures (donnees de demo)
Sylius inclut des fixtures pour populer la base avec des donnees de demonstration (produits, categories, utilisateurs) :
php bin/console sylius:fixtures:load
# Confirmez avec "y" quand demande
# Attention : cette commande SUPPRIME les donnees existantes
Les fixtures creent un utilisateur admin par defaut :
- Email : sylius@example.com
- Mot de passe : sylius
Installation des assets frontend
Sylius 2.x utilise Symfony UX et Bootstrap 5 pour le frontend. Installez les dependances Node.js et compilez les assets :
# Installer les dependances
npm install
# ou: yarn install
# Compiler les assets pour le developpement
npm run dev
# ou: yarn dev
# Ou en mode watch (recompilation automatique)
npm run watch
# ou: yarn watch
Demarrer le serveur de developpement
Avec Symfony CLI (recommande) :
symfony server:start
# Le serveur demarre sur https://127.0.0.1:8000
# Avec un certificat SSL local auto-signe
Ou avec le serveur PHP integre :
php -S 127.0.0.1:8000 -t public
Verifier l'installation
Ouvrez votre navigateur et accedez aux URLs suivantes :
- Boutique :
https://127.0.0.1:8000 - Administration :
https://127.0.0.1:8000/admin - API :
https://127.0.0.1:8000/api/v2/shop
Connectez-vous a l'admin avec les identifiants des fixtures (sylius@example.com / sylius).
Configuration post-installation
Configurer les canaux
Par defaut, Sylius cree un canal "Fashion Web Store". Personnalisez-le dans l'admin (Configuration > Channels) ou via la console :
# Voir les canaux existants
php bin/console sylius:debug:channel
Configurer les methodes de paiement
Sylius supporte Stripe, PayPal et Mollie nativement. Pour configurer Stripe :
# Installer le plugin Stripe
composer require stripe/stripe-php
# Ajouter la cle API dans .env.local
STRIPE_SECRET_KEY=sk_test_xxx
STRIPE_PUBLISHABLE_KEY=pk_test_xxx
Puis configurez la methode de paiement dans l'admin (Configuration > Payment methods).
Configurer les emails
Editez le .env.local pour configurer le mailer :
# Pour le developpement (capture les emails sans les envoyer)
MAILER_DSN=null://null
# Pour la production avec SMTP
MAILER_DSN=smtp://user:password@smtp.example.com:587
# Avec Mailgun
MAILER_DSN=mailgun+api://KEY:DOMAIN@default
Configurer le cache
Pour le developpement, le cache filesystem par defaut suffit. Pour la production, configurez Redis :
# .env.local
REDIS_URL=redis://127.0.0.1:6379
# config/packages/cache.yaml
framework:
cache:
app: cache.adapter.redis
default_redis_provider: '%env(REDIS_URL)%'
Troubleshooting : erreurs courantes
Erreur : "The intl extension is not available"
# Ubuntu/Debian
sudo apt install php8.3-intl
sudo systemctl restart php8.3-fpm
# macOS
pecl install intl
Erreur : "SQLSTATE[HY000] [2002] Connection refused"
Le serveur de base de donnees n'est pas demarre ou les identifiants sont incorrects. Verifiez :
# Verifier que MySQL est demarre
sudo systemctl status mysql
# Tester la connexion
mysql -u root -p -e "SELECT 1;"
# Verifier le DATABASE_URL dans .env.local
grep DATABASE_URL .env.local
Erreur : "Allowed memory size exhausted"
# Augmenter la memoire pour Composer
php -d memory_limit=4G /usr/local/bin/composer install
# Ou modifier php.ini
# memory_limit = 512M (pour le CLI)
Erreur : assets non trouves (404 sur /build/)
# Recompiler les assets
npm run dev
# Vider le cache Symfony
php bin/console cache:clear
Erreur : "There are no commands defined in the sylius namespace"
Les bundles Sylius ne sont pas correctement enregistres. Verifiez config/bundles.php et executez :
composer dump-autoload
php bin/console cache:clear
Prochaines etapes
Votre installation Sylius est prete. Voici les prochaines etapes recommandees :
- Configurer Docker pour un environnement de dev reproductible
- Explorer la demo Sylius pour comprendre les fonctionnalites
- Creer votre premier plugin Sylius custom
- Personnaliser le theme de votre boutique
- Lire le guide complet de l'ecosysteme Sylius
Un probleme d'installation ? Contactez-nous - nous proposons des sessions de demarrage rapide pour mettre votre environnement Sylius en route.
