[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"blog-deployer-symfony-vps-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":21,"featuredImage":23,"bgImage":24,"posterImage":25,"relatedSolution":26,"intro":28,"sections":29,"ctaTitle":72,"ctaBody":73,"ctaButton":74,"ctaUrl":75,"relatedPosts":76},48,"deployer-symfony-vps","Déployer une application Symfony sur un VPS","Déployez Symfony sur un VPS : PHP-FPM, Nginx, MySQL, Composer et SSL. Guide complet pour développeurs PHP qui veulent self-héberger.",8,776,false,"2026-05-03T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},4,"Développement","developpement","bg-warning\u002F10 text-warning","dev",[22],{"id":16,"name":17,"slug":18,"color":19,"icon":20},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-symfony-vps-poster.svg",{"categorySlug":18,"appSlug":27},"symfony","Symfony est le framework PHP des applications d'entreprise exigeantes, structuré autour de composants réutilisables et d'un conteneur de services puissant. Le déployer sur un VPS vous donne la main sur PHP-FPM, OPcache, la base de données et le cache, pour des performances que peu d'hébergements mutualisés permettent.",[30,34,44,47,69],{"type":31,"title":32,"body":33},"h2","Pourquoi self-héberger Symfony sur un VPS ?","Symfony exige une configuration PHP précise : extensions (intl, opcache, pdo), version de PHP, réglages de mémoire et droits sur les dossiers `var\u002Fcache` et `var\u002Flog`. Un hébergement mutualisé impose souvent des versions figées et désactive des extensions essentielles, tandis qu'un PaaS masque la couche PHP-FPM. Sur un VPS, vous choisissez PHP 8.2\u002F8.3, activez et réglez OPcache et le preloading pour des gains de performance majeurs, et configurez PHP-FPM (nombre de processus, pm.max_children) selon votre charge. Vous maîtrisez aussi MySQL ou PostgreSQL et le cache Redis pour les sessions et Doctrine. Pour une application Symfony en production, ce niveau de contrôle conditionne directement le temps de réponse.",{"type":35,"title":36,"items":37},"ul","Bénéfices concrets d'un Symfony auto-hébergé",[38,39,40,41,42,43],"Choix de la version de PHP et de toutes les extensions requises sans restriction.","OPcache et preloading Symfony activés pour des temps de réponse nettement réduits.","Réglage fin de PHP-FPM (`pm.max_children`, workers) selon la RAM disponible.","Base MySQL\u002FPostgreSQL et cache Redis sous votre contrôle, avec sauvegardes planifiées.","Exécution des commandes console et du Messenger (workers) en continu via systemd ou Supervisor.","Déploiements atomiques avec liens symboliques, sans interruption de service.",{"type":31,"title":45,"body":46},"Prérequis matériels et logiciels","Une application Symfony avec base de données tourne confortablement sur 2 vCPU et 2 Go de RAM ; montez à 4 Go si vous ajoutez Redis, Elasticsearch ou des workers Messenger. Installez PHP 8.2+ avec FPM et les extensions `intl`, `opcache`, `pdo_mysql`, `mbstring`, `xml`, ainsi que Composer 2. Nginx sert de frontal, MySQL 8 ou PostgreSQL comme base. Vous pouvez tout conteneuriser avec Docker (image `php:8.3-fpm`) ou installer nativement. Un domaine pointé vers le VPS est nécessaire pour le TLS. Prévoyez l'environnement `APP_ENV=prod` et la génération des assets via AssetMapper ou Webpack Encore.",{"type":48,"title":49,"steps":50},"steps","Déployer Symfony étape par étape",[51,54,57,60,63,66],{"title":52,"body":53},"Préparer le serveur et le code","En SSH, installez PHP-FPM 8.3, les extensions et Composer (ou Docker). Clonez le dépôt et créez `.env.local` avec `APP_ENV=prod`, `APP_SECRET` et `DATABASE_URL`. Lancez `composer install --no-dev --optimize-autoloader`.",{"title":55,"body":56},"Compiler le cache et les assets","Exécutez `php bin\u002Fconsole cache:clear --env=prod` puis `cache:warmup`. Compilez les assets avec `php bin\u002Fconsole asset-map:compile` (AssetMapper) ou `npm run build` (Encore). Vérifiez les droits sur `var\u002F`.",{"title":58,"body":59},"Migrer la base de données","Lancez `php bin\u002Fconsole doctrine:migrations:migrate --no-interaction` pour appliquer le schéma. Configurez une connexion Redis pour les sessions et le cache Doctrine si votre application en a besoin.",{"title":61,"body":62},"Configurer Nginx et PHP-FPM","Pointez la racine Nginx vers `public\u002F`, routez toutes les requêtes vers `index.php` via `try_files`, et transmettez les `.php` au socket PHP-FPM avec `fastcgi_pass`. Réglez `pm.max_children` en fonction de la RAM et activez OPcache dans `php.ini`.",{"title":64,"body":65},"Sécuriser avec un certificat SSL","Obtenez un certificat Let's Encrypt via Certbot pour `votredomaine.ma`, forcez le HTTPS et activez le renouvellement automatique. Bloquez l'accès direct aux dossiers `config\u002F`, `src\u002F` et `var\u002F` au niveau de Nginx.",{"title":67,"body":68},"Superviser les workers Messenger","Si vous utilisez le composant Messenger, déclarez un service systemd ou Supervisor qui exécute `php bin\u002Fconsole messenger:consume async` en continu, avec redémarrage automatique. Planifiez un cron pour `messenger:stop-workers` après déploiement afin de recharger le nouveau code.",{"type":70,"body":71},"tip","Activez le preloading de Symfony en pointant `opcache.preload` vers `var\u002Fcache\u002Fprod\u002FApp_KernelProdContainer.preload.php` dans votre `php.ini`. Le conteneur de services et les classes du framework sont alors chargés une fois en mémoire au démarrage de PHP-FPM, ce qui élimine une part importante du coût d'autoloading à chaque requête et réduit sensiblement la latence en production.","Mettez votre Symfony en production","Le VPS Cloud ServOrbit propose un template avec PHP-FPM, Nginx, base de données et SSL automatique, prêt à héberger vos applications Symfony optimisées avec OPcache.","Déployer mon VPS Symfony","\u002Fvps-cloud",[77,91,104],{"id":78,"slug":79,"title":80,"excerpt":81,"readTime":82,"views":83,"isPinned":13,"publishedAt":84,"category":85,"categories":86,"featuredImage":23,"bgImage":24,"posterImage":88,"relatedSolution":89},5,"deployer-laravel-vps","Déployer Laravel sur un VPS : guide production","Passez Laravel en production sur VPS : PHP, workers, cache, base de données, reverse proxy et HTTPS proprement configurés.",7,2840,"2026-02-09T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[87],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-laravel-vps-poster.svg",{"categorySlug":20,"appSlug":90},"laravel-stack",{"id":92,"slug":93,"title":94,"excerpt":95,"readTime":11,"views":96,"isPinned":13,"publishedAt":97,"category":98,"categories":99,"featuredImage":23,"bgImage":24,"posterImage":101,"relatedSolution":102},43,"deployer-nodejs-vps","Déployer une application Node.js sur un VPS","Déployez une application Node.js en production sur un VPS : PM2, reverse proxy Nginx, SSL Let's Encrypt et démarrage automatique au boot.",591,"2026-05-08T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[100],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":18,"appSlug":103},"nodejs",{"id":105,"slug":106,"title":107,"excerpt":108,"readTime":11,"views":109,"isPinned":13,"publishedAt":110,"category":111,"categories":112,"featuredImage":23,"bgImage":24,"posterImage":114,"relatedSolution":115},44,"deployer-django-vps","Déployer une application Django sur un VPS","Déployez Django sur un VPS : Gunicorn, Nginx, PostgreSQL, Docker et SSL. Guide complet pour développeurs Python qui veulent self-héberger.",628,"2026-05-07T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[113],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-django-vps-poster.svg",{"categorySlug":18,"appSlug":116},"django",1784126233978]