Vous souhaitez installer Sylius ? Vous n’y arrivez pas et/ou trouvez ça compliqué ? Pas de souci, voici un tutoriel simple et rapide qui vous permettra d’installer Sylius pas à pas !
La solution e-commerce Sylius, basée sur Symfony a le vent en poupe en ce moment et de plus en plus de développeurs et d’agences spécialisées e-commerce s’y intéressent. J’en fais évidemment partie car, cela fait évidemment parte de ma veille technologique mais j’aime connaître ce qui se fait dans le monde du e-commerce, que ce soit du côté des e-commerçants ou des agences / développeurs.
Je ne vais pas faire ici un comparatif de Sylius contre les autres solutions du marché, que ce soit Prestashop, Shopify ou encore WooCommerce mais plutôt un petit tutoriel rapide pour vous aider à l’installer simplement et vous permettre de le découvrir dans les meilleures conditions.
Petit préambule, j’utilise ici mon MacBook Pro sous MacOS Catalina 10.15.3 avec le serveur Apache 2.4, MySQL 5.7, PHP 7.2 (minimum requis pour Sylius). Le tout pour installer Sylius 1.6 !
Table des matières
Les pré-requis pour installer Sylius 1.6
En premier lieu, vérifiez que votre PC / Serveur est prêt pour recevoir Sylius 1.6. Vous aurez besoin de PHP 7.2 d’installé et de fonctionnel ainsi que MySQL 5.7 (si vous avez MySQL 8, ça fonctionne aussi, bien qu’elle soit peu rependue).
Au niveau de la base de données, je vous laisse préparer un utilisateur et une base de données vide.
N’oubliez pas d’installer Composer si vous ne l’avez pas encore !
On commence l’installation de Sylius 1.6 !
Installation de Sylius Standard
composer create-project sylius/sylius-standard nom_projet
Cela a pour effet de télécharger Sylius et toutes ses dépendances dans le dossier nom_projet que Composer va créer automatiquement. Une fois terminé, vous pouvez vous rendre dans ce dossier pour continuer.
On va devoir désormais préparer la connexion à la base de données. Je vais donc créer un fichier .env.local
à la racine de Sylius où je vais juste insérer la variable d’environnement suivante :
DATABASE_URL=mysql://root:root@localhost/db_name
Je vous laisse bien entendu modifier les valeurs ici présentes par les vôtres. Une fois OK pour vous, vous pouvez jouer cette commande qui va vraiment installer Sylius et configurer quelques éléments par défaut.
php bin/console sylius:install
Pendant cette installation, il y aura quelques champs à remplir en mode interactif, notamment si vous voulez des sample data ainsi que la devise par défaut (mettez EUR), la locale par défaut (mettez fr_FR) et les informations de connexion pour votre compte administrateur.
Installation du front-end
Sylius utilise Gulp pour gérer ses assets et le gestionnaire de paquet Yarn. Si vous n’avez pas Yarn installer, je vous laisse l’installer, pour mon cas, j’ai du l’installer avec brew install yarn
. Une fois installé, utilisez
yarn install
Une fois terminé, il faut build le front-end avec
yarn build
Voilà, votre boutique Sylius est techniquement installée, il ne vous reste plus qu’à y accéder.
Accédez à votre boutique Sylius
En utilisant le Symfony Web Server
Symfony embarque le nécessaire pour faire tourner un serveur standalone, il vous suffit de jouer la commande symfony server:start
ou php bin/console server:start
. Ainsi, vous pouvez vous accéder à votre boutique avec l’URL http://127.0.0.1:8000
et l’administration avec http://127.0.0.1:8000/admin
.
En utilisant Apache 2.4
Si comme moi vous avez Apache 2.4 d’installé et configuré sur votre serveur, aucun souci, vous pouvez l’utiliser également. Je vous laisse ma configuration, qui fonctionne très bien et qui permet d’accéder à ma boutique Sylius depuis l’URL https://dev.sylius.test
et l’administration via https://dev.sylius.test/admin
.
<VirtualHost *:80>
DocumentRoot "/usr/local/var/www/sylius/sylius/public"
ServerName dev.sylius.test
ErrorLog "/usr/local/var/log/httpd/sylius_error_log"
CustomLog "/usr/local/var/log/httpd/sylius_access_log" common
<Directory "/usr/local/var/www/sylius/sylius/public">
AllowOverride All
Require all granted
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/usr/local/var/www/sylius/sylius/public"
ServerName dev.sylius.test
SSLEngine on
SSLCertificateFile "/usr/local/etc/httpd/server.crt"
SSLCertificateKeyFile "/usr/local/etc/httpd/server.key"
ErrorLog "/usr/local/var/log/httpd/sylius_error_log"
CustomLog "/usr/local/var/log/httpd/sylius_access_log" common
<Directory "/usr/local/var/www/sylius/sylius/public">
AllowOverride All
Require all granted
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
127.0.0.1 dev.sylius.test
La partie du Virtual Host pour le port 80 (HTTP only) n’est pas utile pour moi, mais je vous la laisse au cas où vous ne voulez pas utiliser le HTTPS ou si vous n’avez pas de certificat utilisable pour le moment.
Une fois le VH configuré, redémarrez votre serveur et votre boutique est accessible !
En utilisant NGINX
Pour utiliser Sylius avec Nginx, c’est pas très compliqué non plus, il faut éditer ce ficher sudo vim /etc/nginx/sites-available/sylius.conf
et y mettre le contenu suivant
server {
listen 80;
server_name example.com;
root /var/www/sylius/public;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
location ~ \.php$ {
return 404;
}
client_max_body_size 6m;
}
Sauvegarder le fichier et activez le VH avec la commande suivante : sudo ln -s /etc/nginx/sites-available/sylius.conf /etc/nginx/sites-enabled/
Rechargez le service avec sudo systemctl reload nginx.service
et voilà, terminé 🙂 !
Découverte rapide
Front-Office
Le front-office par défaut est assez simple mais est pleinement fonctionnel. Vous avez ainsi par défaut un sélecteur de langues, devises, le tout avec une traduction française intégrale et un mode responsive convaincant ! Les options essentielles à toutes les boutiques e-commerces sont présentes et vous permettent de commencer à vendre rapidement et efficacement
Back-Office
C’est la partie un peu plus compliquée à prendre en main mais finalement, tout est à sa place. Comme je vous le disais pour le front, en back-office aussi tout est fait pour vous permettre de vendre vite et bien. L’intégration de Stripe et de PayPal est proposée par défaut, vous pouvez les configurer et les activer en quelques clics.
J’aime beaucoup la gestion des commandes qui est assez simple, quelques boutons pour confirmer le paiement et pour confirmer l’expédition. En fin de compte, tout est plutôt simple si tant est que l’on connaisse où ça se trouve !
Conclusion
Vous pouvez ainsi tester ce que propose ce framework e-commerce venu tout droit de Pologne et basé sur Symfony qui commence à faire parler de lui en France grâce à sa puissance, adaptabilité et sa communauté grandissante !
Je prépare d’ores et déjà un prochain tutoriel qui vous permettra de commencer à développer sur Sylius !
N’hésitez pas à poser des questions en commentaires ou évoquer les difficultés que vous avez rencontrées à l’installation.
Également, n’hésitez pas à venir me voir, ici ou sur LinkedIn, si vous souhaitez évoquer les différences, points forts et points faibles de Sylius par rapport à ses concurrents directs que sont Prestashop, Shopify et WooCommerce ou simplement discuter de e-commerce !
plus d’information sur Sylius sur cet article
Pourquoi tout le monde commence des tutoriels sur Sylius mais personne ne les continue ??
Hello !
Parce que c’est long à faire, nous faisons ça sur notre temps libre 🙂
Après s’il y a une demande de tuto particulier, ça peut se faire.
Sur quel point souhaiterais tu un tutoriel ?
Merci 🙂
Bonsoir,
J’aimerais savoir si c’est possible de deployer sur nginx,
parce que j’ai essayé par moi meme (en vain) ,cherché mais apparement personne n’a encore abordé le sujet😕
Hello ! Oui c’est possible 😄
T’es sûr quel environnement ?
Je vais voir si je peux te trouver quelque chose
ah merci,
je suis sur Ubuntu 20.04
Hello, j’ai testé hier soir sur un Ubuntu 18.04 que j’avais sous la main et le tuto fourni par Vultur fonctionne bien : https://www.vultr.com/docs/how-to-install-sylius-ecommerce-platform-on-ubuntu-18-04-lts#Install_Nginx
Tu l’as essayé ?
Merci 🙂
oui oui merci beaucoup, j’étais tombé dessus hier mais je l’avais mal fait je crois.
j’ai reussi finalement et j’ai fait la configuration ssl en plus. 👍
Super !
Bon courage pour la suite 😀
Ca me donne bien envie de tester ! Merci pour ce tutoriel.
Par contre, j’ai créé une base de donnée MySQL sur Wampserver et suivi la procédure expliquée, et j’ai une erreur quand j’exécute « php bin/console sylius:install ».
An exception occurred in driver: SQLSTATE[HY000] [1049] Base ‘test_ecommerce’ inconnue
J’ai pourtant dans mon fichier .end.local : DATABASE_URL=mysql://root:password@localhost/test_ecommerce. Et bien sûr, j’ai créé la base de données test_commerce avec MySQL.
Si quelqu’un a une solution, je suis preneur !
Salut ! Merci pour ton intérêt 🙂
Si tu fais une BDD pour WordPress par exemple, tu n’as pas le souci ?
Merci pour ta réponse !
Ça échoue aussi avec WordPress :
Erreur lors de la connexion à la base de données ! Cela signifie soit que l’identifiant ou le mot de passe dans votre fichier wp-config.php n’est pas correct, soit que nous ne pouvons pas contacter le serveur de base de données à l’adresse localhost.
J’opterai pour la 2e explication, l’installation de WordPress utilisée étant la même que tous mes autres sites en local, il n’y a pas de raison pour que le fichier config.php ait un soucis. La seule différence étant que ce n’est pas la même version de WampServer (j’ai dû en prendre une plus récente pour avoir une version plus récente de PHP pour Sylius justement). J’ai pris la version 32 bits au lieu de la version 64 bits, ça pourrait avoir une influence ?
Bizarre.
Tu n’aurais pas les 2 versions de WampServer qui tournent en parallèle par hasard ? C’est un souci de WampServer, pas de WordPress ou Silyus pour moi 🙂
Effectivement, je réessaierai en ayant vérifié dans le gestionnaire de tâches que le 2e wampserver est bien arrêté. Si cela ne fonctionne toujours pas, je pense que je devrai réessayer quand j’aurai changé mon PC. Je le soupçonne d’être un peu trop vieux pour certaines choses !
En tout cas, bonne trouvaille, j’espère pouvoir essayer un jour. Merci pour tes réponses !
salut
merci beaucoup pour le tutoriel
mais là j’ai un petit soucie j’aimerais avoir un bouton de sélection en haut dans le menu pour avoir une liste de l’ensemble de mes boutiques
Si quelqu’un a une solution, je suis preneur