Ubuntu · Laravel déploiement

Comment déployer Laravel sur unUbuntu VPS

Par · Dernière mise à jour : · lecture gratuite, pas de paywall

Un VPS de 5 à 7 $/mois reste le moyen le moins cher et le plus flexible d'exécuter Laravel en production, si vous le configurez correctement. Ce guide présente la pile de production complète, chaque étape manuelle, l'alternative à une seule commande et les habitudes opérationnelles qui maintiennent un serveur en bonne santé pendant des années.

Dans ce guide
  1. Pourquoi un VPS (et quand pas)
  2. La pile de production, expliquée
  3. La configuration manuelle, étape par étape
  4. L'alternative à une seule commande
  5. Opérations post-déploiement importantes
  6. Erreurs courantes à éviter
  7. FAQ

Pourquoi un VPS (et quand pas)

L'hébergement partagé ne peut pas exécuter correctement les files d'attente, les WebSockets ou Laravel Octane, ainsi que les plates-formes PaaS gérées. facturez pour plus de commodité avec une tarification basée sur l’utilisation. Un VPS de Hetzner, DigitalOcean, Vultr ou Linode vous donne un accès root, une facturation prévisible et suffisamment de marge pour héberger plusieurs Laravel applications sur une seule machine.

La pile de production, expliquée

Chaque serveur de production Laravel converge vers les mêmes composants. Comprendre ce que fait chaque pièce avant vous automatisez tout cela :

ComposantRôleRemarques
NginxServeur Web/proxy inverseSert des actifs statiques, des proxys PHP requêtes
PHP-FPM ou OctaneDurée d'exécution PHPFPM est la valeur par défaut fiable ; Octane (FrankenPHP) maintient l'application démarrée pour un débit élevé
MariaDB / PostgreSQLBase de donnéesSoit cela fonctionne avec Laravel ; choisir par application
Valkey (compatible Redis)Cache, sessions, files d'attenteOpen-source Redis fourchette ; rendez-vous pour Laravel
SupervisorGestionnaire de processusGarde queue:work et Horizon en vie
CronPlanificateurUne entrée : artisan schedule:run chaque minute
UFW + Fail2banPare-feu / protection contre la force bruteRefus par défaut, interdiction des échecs SSH répétés
Bot certifiéTLS certificatsCertificats Let's Encrypt gratuits avec renouvellement automatique
Versions de style déployeurDéploiements sans temps d'arrêtRépertoire des versions + échange de lien symbolique

La configuration manuelle, étape par étape

Il s’agit d’une liste de contrôle honnête et intégrale. Prévoyez 2 à 4 heures la première fois et n'oubliez pas que vous en posséderez chaque un de ces choix au moment de la mise à niveau également.

  1. Créez un utilisateur sudo et verrouillez SSH. adduser deploy, installez votre public clé, puis désactivez la connexion root et l'authentification par mot de passe dans /etc/ssh/sshd_config.
  2. Activez le pare-feu. ufw allow OpenSSH http https alors ufw enable. Installez Fail2ban pour la protection contre la force brute SSH.
  3. Installez Nginx. apt install nginx.
  4. Installez PHP. Ajoutez un référentiel PHP maintenu, puis installez php8.x-fpm avec les extensions Laravel a besoin : mbstring, xml, curl, zip, intl, mysql (ou pgsql), redis, gd, opcache.
  5. Réglez PHP pour la production. Activer opcache, définir sain d'esprit memory_limit et upload_max_filesize, tourne expose_php désactivé.
  6. Installez Composer à l'échelle mondiale.
  7. Installez MariaDB, cours mariadb-secure-installation, créez une base de données et un utilisateur dédié par application – ne réutilisez jamais root.
  8. Installez Valkey (ou Redis) pour le cache, les sessions et les files d'attente.
  9. Écrivez le bloc serveur Nginx. Documenter les points racines à current/public, try_files retombe sur index.php, FastCGI passe au socket PHP-FPM de l'application.
  10. Expédiez le code. Cloner dans un releases/ répertoire, composer install --no-dev --optimize-autoloader, copie .env, cours php artisan key:generate, storage:link, et corrigez les autorisations uniquement storage/ et bootstrap/cache/ sont inscriptibles.
  11. Migrez et mettez en cache. php artisan migrate --force alors config:cache, route:cache, view:cache.
  12. Configurer Supervisor courir php artisan queue:work (ou Horizon) et redémarrez-le à chaque déploiement.
  13. Ajoutez le planificateur cron : * * * * * php artisan schedule:run.
  14. Émettre des certificats TLS avec Certbot et forcez HTTPS.

Multipliez maintenant par chaque application que vous hébergez, puis par chaque serveur, et gardez PHP, Nginx et le système d'exploitation corrigés. pour toujours. Tout est réalisable ; c'est juste un travail indifférencié.

L'alternative à une seule commande

Tout dans la section précédente est exactement ce que Cipi automatise. Sur un frais Ubuntu 24.04/26.04 VPS :

wget -O - https://cipi.sh/setup.sh | coup

En dix minutes environ, vous obtenez la pile complète : Nginx, PHP, MariaDB, Valkey, Supervisor, UFW, Fail2ban, Certbot, Deployer — plus un renforcement que vous feriez autrement à la main : connexion root désactivée, SSH avec clé uniquement pour le utilisateur admin et un mot de passe root aléatoire stocké dans /etc/cipi/server.json. Alors chaque application en est une plus de commande :

cipi création d'application # add --octane for Laravel Octane on FrankenPHP

Cela prévoit un utilisateur du système isolé, pool PHP-FPM, hôte virtuel Nginx et base de données par application, connecte GitHub ou GitLab avec des clés de déploiement et des webhooks pour des déploiements Git sans temps d'arrêt et une file d'attente de connexion les travailleurs et le planificateur. SSL est cipi ssl install; PostgreSQL est cipi db install pgsql. Voir le commencer guider pour la présentation complète, ou le centre de comparaison si vous l'évaluez par rapport à Forge, Ploi et à vos amis.

Opérations post-déploiement importantes

Arriver à « ça marche » représente la moitié du travail. Ces habitudes sont ce qui différencie un serveur qui dure des années d'un autre ça vous surprend :

Erreurs courantes à éviter

Mettez cela en pratique avec Cipi

Cipi est le déploiement gratuit open-source CLI référencé tout au long de ce guide : une commande transforme un nouveau Ubuntu VPS dans un serveur de production renforcé pour Laravel — Nginx, PHP-FPM ou Octane, MariaDB ou PostgreSQL, files d'attente, planificateur, SSL et déploiements Git sans temps d'arrêt inclus.

wget -O - https://cipi.sh/setup.sh | coup

Questions fréquemment posées

Quelle est la configuration minimale requise pour Laravel en production ?

Un seul processeur virtuel avec 2 Go de RAM exécute confortablement une application Laravel typique avec une base de données, un cache et un gestionnaire de file d'attente ; ajoutez un swap en dessous de 4 Go. Octane, Horizon et les étapes de construction lourdes bénéficient de 4 Go. Cipi installe sa pile complète sur n'importe quel nouveau Ubuntu 24.04/26.04 VPS.

Puis-je héberger plusieurs applications Laravel sur un seul VPS ?

Oui, et c’est généralement la configuration la plus rentable. La clé est l'isolement : chaque application doit avoir son propre utilisateur système, son pool PHP-FPM et ses informations d'identification de base de données afin qu'une application compromise ou qui se comporte mal ne puisse pas toucher les autres. Cipi prévoit exactement cette isolation automatiquement avec la création de l'application cipi.

Dois-je utiliser PHP-FPM ou Laravel Octane ?

PHP-FPM est la valeur par défaut ennuyeuse et fiable et convient à la plupart des applications. Octane maintient le framework démarré entre les requêtes et brille sur les API à fort trafic et les points de terminaison sensibles à la latence. Avec Cipi, vous pouvez exécuter les deux sur le même serveur et créer Octane applications avec cipi app create --octane.

Comment puis-je tenir PHP informé du Ubuntu ?

Suivez un référentiel PHP maintenu et appliquez les correctifs de sécurité rapidement plutôt que d'attendre les mises à niveau de la distribution. Cipi gère lui-même les correctifs de sécurité PHP avec une vérification hebdomadaire (mise à niveau cipi php), afin que les serveurs ne prennent pas de retard en silence.

Ai-je toujours besoin de Laravel Forge si je gère mon propre VPS ?

Non. Forge est un SaaS payant qui automatise la même pile décrite dans ce guide. Si vous souhaitez cette automatisation sans abonnement ni dépendance tierce, Cipi couvre le même flux de travail gratuitement et open source — voir la comparaison détaillée Cipi vs Forge.

Continuez à lire