Sylius15 min

Installer Sylius : le guide pas-a-pas avec Symfony 7 et PHP 8.3

Par Pierre-Arthur Demengel
SyliusInstallationSymfony 7PHP 8.3Tutoriel

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 :

Un probleme d'installation ? Contactez-nous - nous proposons des sessions de demarrage rapide pour mettre votre environnement Sylius en route.

Questions fréquentes

13 projets livrésGrand-Est & BelgiqueLighthouse >90Disponible immédiatement

Un projet en tête ?

Discutons de votre site web. Réponse garantie sous 24h.

Ou appelez directement :06 95 41 30 25

WhatsApp
Appeler