Comment Déployer Laravel sur un Serveur Privé Virtuel en 2024
Laravel est un framework d’application web PHP open-source. Ses boîtes à outils, ses bibliothèques et ses fonctionnalités permettent d’améliorer l’efficacité du développement puisque les utilisateurs n’ont pas besoin de coder toutes les fonctionnalités à partir de zéro.
Ce framework populaire dispose d’une large communauté de développeurs, ce qui améliore l’assistance et la disponibilité des ressources. Cependant, les nouveaux utilisateurs peuvent ne pas savoir comment déployer Laravel en raison de ses différentes dépendances et commandes.
Dans ce tutoriel, nous expliquerons comment déployer le framework sur un serveur privé virtuel Ubuntu (VPS). Ce guide de déploiement de Laravel explorera également plusieurs astuces qui aideront à simplifier la tâche.
Sommaire
Conditions préalables au déploiement de Laravel
Avant de commencer à utiliser Laravel, achetez un plan d’hébergement sur serveur privé virtuel. Lorsque vous choisissez le meilleur fournisseur VPS et plan d’hébergement pour votre projet, tenez compte des aspects suivants :
- Compatibilité. Votre VPS doit supporter le système d’exploitation choisi, le serveur web, Laravel, la dernière version de PHP, et d’autres dépendances pour fonctionner correctement.
- Accès. Le serveur hôte doit fournir un accès racine complet via une connexion secure shell (SSH) pour permettre un déploiement transparent et sécurisé de Laravel.
- Performance. L’environnement d’hébergement VPS idéal doit fournir une bande passante et des ressources serveur suffisantes pour garantir une performance optimale de l’application Laravel.
- Fonctionnalités supplémentaires. Certains fournisseurs d’hébergement web proposent des fonctions qui simplifient le processus de déploiement des applications web, comme un panneau de contrôle et un programme d’installation en un clic.
Les plans d’hébergement VPS d’Hostinger sont compatibles avec diverses distributions Linux, logiciels et frameworks, y compris Laravel.
De plus, les utilisateurs d’Hostinger peuvent configurer leur serveur en un seul clic via hPanel en utilisant le template de système d’exploitation. Il est livré avec divers logiciels et leurs dépendances afin de simplifier le processus de déploiement.
Tous nos plans VPS fournissent un accès racine complet afin d’éviter les problèmes liés aux permissions. Les utilisateurs peuvent également utiliser notre terminal du navigateur intégré pour se connecter à leur serveur distant. C’est plus pratique qu’un client SSH puisque vous pouvez exécuter des commandes Linux directement depuis votre navigateur web.
À partir de €5.99/mois, notre solution VPS offre jusqu’à 400 Go de stockage NVMe, 8 To de bande passante, 32 Go de RAM et 8 cœurs vCPU, adaptés aux projets d’entreprise à grande échelle. Tous nos plans sont également assortis d’une garantie de remboursement de 30 jours.
Comment déployer un projet Laravel chez Hostinger
Pour les utilisateurs de Hostinger, la façon la plus simple de déployer un projet Laravel dans un VPS est d’utiliser un modèle de système d’exploitation. Cette méthode est accessible via le navigateur web, elle est donc idéale pour les débutants qui ne sont pas familiers avec l’interface de ligne de commande.
Important ! Sauvegardez votre VPS avant d’installer un template de système d’exploitation, car cela effacera définitivement toutes les données de votre serveur.
Voici les étapes à suivre pour l’installation de laravel sur le VPS Hostinger à l’aide d’un template :
- Connectez-vous à hPanel et cliquez sur VPS dans le menu supérieur.
- Sélectionnez le plan d’hébergement VPS sur lequel vous souhaitez installer Laravel.
- Dans la barre latérale, cliquez sur Paramètres → Système d’exploitation et panneau → Système d’exploitation.
- Dans la section Changer l’OS, cliquez sur Application.
- Sélectionnez Ubuntu 22.04 avec Laravel dans la liste. Cliquez sur Changer l’OS pour confirmer.
6. Une fenêtre de confirmation concernant la suppression des données s’affiche. Cochez la case après avoir lu l’avertissement et cliquez sur Confirmer.
7. Saisissez un nouveau mot de passe pour le tableau de contrôle de l’hébergement. Cliquez sur Confirmer pour continuer.
C’est tout ! Une fois le processus d’installation terminé, cliquez sur l’URL de connexion sous l’accès Strapi, et vous devriez voir l’écran de bienvenue de Laravel. Le modèle configure également automatiquement CloudPanel pour le déploiement d’une application.
Pour ce faire, cliquez sur l’URL d’accès à CloudPanel et connectez-vous en tant qu’administrateur. Cliquez sur votre domaine VPS → Gestionnaire de fichiers → Ajouter un nouveau → Télécharger un fichier. Sélectionnez les fichiers de votre projet et cliquez sur Ouvrir.
Étant donné que le déploiement via le panneau de contrôle peut être peu fiable, nous recommandons d’utiliser d’autres méthodes comme Git. Nous en parlerons plus tard dans la section suivante.
Notez que vous ne pouvez pas choisir un autre logiciel lorsque vous installez Laravel en utilisant le modèle VPS. Si vous préférez un autre système d’exploitation ou si votre projet nécessite des logiciels supplémentaires, envisagez la méthode manuelle.
Comment déployer manuellement un projet Laravel
Dans cette section, nous allons expliquer les étapes pour déployer manuellement Laravel sur un hébergement VPS fonctionnant sous Ubuntu 22.04. Les commandes peuvent varier en fonction de la version et de la distribution de Linux.
1. Préparer le serveur pour Laravel
Après avoir acheté et configuré votre VPS, connectez-vous à distance via SSH. Vous pouvez utiliser une application SSH comme PuTTY, Terminal, ou le terminal de Hostinger.
Connectez-vous à votre serveur en utilisant l’utilisateur root. Sur le VPS Hostinger, accédez aux informations d’identification en allant dans hPanel → VPS dans le menu supérieur. Ensuite, naviguez vers votre plan VPS et allez dans Aperçu général → l’onglet Accès SSH.
Important ! A la place de root, nous recommandons de créer un nouveau compte avec des privilèges de superutilisateur afin d’éviter l’exécution accidentelle de commandes destructives.
Laravel nécessite un serveur web, une base de données, des bases de données PHP et Composer. Vous aurez également besoin d’autres logiciels comme Git pour pousser les fichiers d’application de votre ordinateur local vers la machine distante. Voici les étapes à suivre :
- Mettez à jour le dépôt du gestionnaire de paquets APT à l’aide de cette commande :
sudo apt update && sudo apt upgrade
- Installer le serveur web. Dans ce tutoriel, nous utiliserons Apache :
sudo apt install -y apache2
- Exécutez cette commande pour configurer PHP et ses extensions :
sudo apt install -y php php-cli php-fpm php-mysql php-xml php-mbstring
- Configurer une base de données. Nous allons installer MySQL à l’aide de la commande suivante :
sudo apt install -y mysql-server
- Installez Composer pour gérer les dépendances de Laravel en utilisant cette commande :
sudo apt install -y composer
- Entrez cette commande pour configurer le système de contrôle de version Git :
sudo apt install -y git
Si vous ne souhaitez pas configurer manuellement le serveur de production, achetez Laravel Forge. À partir de 11.13 €/mois, cette plateforme offre un espace centralisé pour l’installation et la gestion de toutes les applications nécessaires à votre projet.
2. Déployer l’application
Créez un hôte virtuel pour votre projet Laravel en configurant un fichier de configuration du serveur web à l’aide de l’éditeur de texte nano. Pour Apache, exécutez la commande suivante :
sudo nano /etc/apache2/sites-available/laravel.conf
Dans le fichier, écrivez la configuration suivante. Veillez à remplacer les caractères de remplacement du répertoire par le chemin réel et thedomain.com par l’adresse IP de votre serveur :
<VirtualHost *:80>
ServerName thedomain.com
ServerAdmin webmaster@thedomain.com
DocumentRoot /var/www/html/test-laravel/public
<Directory /var/www/html/test-laravel/public>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Important ! Le contenu du fichier de configuration sera différent si vous utilisez un autre serveur web comme NGINX.
Déployez le code du projet d’application Laravel à partir de votre dépôt Git en exécutant ces commandes en série. Remplacez l’URL par le lien réel :
cd /var/www/html
sudo git clone https://github.com/your_username/test-laravel.git
Si vous n’avez pas encore transféré les fichiers de votre projet Laravel dans un dépôt, lisez notre tutoriel Git pour en savoir plus sur la façon de le faire.
Pour déployer les fichiers du projet, vous pouvez utiliser des méthodes telles que l’utilitaire rsync ou une application de protocole de transfert de fichiers sécurisé (SFTP). Cependant, nous recommandons le contrôle de version dans le déploiement de Laravel pour des raisons de commodité et de sécurité.
Naviguez jusqu’au répertoire de votre projet et exécutez composer install pour configurer les dépendances :
cd test-laravel
sudo composer install
Si Terminal renvoie des messages d’erreur, essayez d’exécuter la commande composer update. Ajoutez également l’option –ignore-platform-req=ext-curl pour voir si le problème est résolu.
3. Configurer le fichier .env
Lorsque vous créez une application Laravel, Composer génère un modèle de fichier .env.example. Il stocke les configurations spécifiques à l’environnement, déterminant diverses variables pour vos applications, comme les informations relatives à la base de données.
Pour configurer un fichier .env pour votre projet Laravel, copiez le modèle ci-dessous et ouvrez-le en utilisant nano :
sudo cp .env.example .env
sudo nano .env
La configuration de ce fichier utilise la syntaxe KEY=VALUE. Par exemple, l’entrée suivante détermine le mot de passe de l’utilisateur de la base de données Laravel :
DB_PASSWORD=votre_mot_de_passe
Pour modifier la configuration, supprimez la valeur et remplacez-la par une nouvelle. Appuyez sur Ctrl + X, Y et Enter pour enregistrer les modifications.
Par défaut, Laravel définit le DB_USERNAME comme root et laisse le DB_PASSWORD vide. Cependant, cela peut provoquer une erreur lorsque vous exécutez PHP Artisan, l’utilitaire en ligne de commande du framework, pour la migration de la base de données.
Pour résoudre ce problème, modifiez le mot de passe racine par défaut et mettez à jour la valeur DB_PASSWORD en conséquence. Nous vous recommandons également de créer une base de données et des utilisateurs autres que ceux par défaut, spécifiques à votre projet actuel, afin de faciliter la gestion.
Conseil de pro
Consultez notre tutoriel pour en savoir plus sur la façon de configurer votre utilisateur MySQL, votre mot de passe et vos permissions sur Ubuntu.
4. Exécuter l’application
Pour démarrer votre application Laravel, rendez le dossier du projet exécutable en modifiant les permissions et la propriété :
sudo chown -R www-data /var/www/html/test-laravel
sudo chmod -R 755 /var/www/html/test-laravel/storage
Exécutez PHP Artisan pour générer la clé d’application et initier la migration de la base de données. Voici les commandes :
sudo php artisan key:generate
sudo php artisan migrate
Chaque fois que vous modifiez le schéma de la base de données, mettez à jour les fichiers de migration afin de maintenir une configuration cohérente pour votre application. Consultez le guide de migration de Laravel pour en savoir plus.
Désactivez le fichier de configuration par défaut de l’hôte virtuel dans Apache à l’aide de la commande suivante :
sudo a2dissite 000-default.conf
Activez le nouvel hôte virtuel et le module de réécriture à l’aide de ces commandes :
sudo a2ensite laravel.conf
sudo a2enmod rewrite
Redémarrez Apache à l’aide de la commande systemctl :
sudo systemctl restart apache2
Une fois le processus de déploiement terminé, entrez l’adresse IP ou le nom de domaine de votre VPS dans un navigateur web pour vérifier si l’application fonctionne correctement. Si les fichiers sont vides, vous devriez voir la page de bienvenue de Laravel.
Conseils et astuces pour le déploiement de Laravel
Dans cette section, nous aborderons plusieurs bonnes pratiques de déploiement de Laravel afin de rationaliser le processus.
Utiliser la configuration de la mise en cache dans Laravel
Le framework Laravel vous permet de stocker les données fréquemment consultées sous forme de cache. Cela réduit le temps nécessaire à la recherche des informations et décharge les requêtes de la base de données, améliorant ainsi les performances de votre application web.
Il fournit également différents backends et pilotes de mise en cache. Les utilisateurs peuvent choisir celui qui répond le mieux à leurs besoins et le configurer facilement grâce à la clé CACHE_DRIVER du fichier .env.
Si vous ne spécifiez pas le pilote de cache, Laravel utilisera file par défaut. Vous pouvez également utiliser array, database, redis, ou memcached.
Pour activer le cache, ajoutez la méthode à la base de code de votre application. Par exemple, écrivez Cache::put() pour stocker des données pendant une durée déterminée :
Cache::put('key', 'value', $minutes);
Entre-temps, utilisez la méthode Cache:rememberForever() pour stocker le cache indéfiniment :
Cache::rememberForever( ‘key’, function);
Ce framework fournit de nombreuses méthodes de mise en cache à des fins différentes, comme la récupération, la suppression ou l’incrémentation des données stockées. Pour en savoir plus, consultez la documentation de Laravel sur la mise en cache.
Pour gérer le cache, vous pouvez exécuter les commandes PHP artisan dans le répertoire de travail de votre projet. Par exemple, entrez la commande suivante pour supprimer les données stockées :
php artisan cache:clear
Utiliser les outils de déploiement automatique de Laravel
L’automatisation du déploiement de Laravel permet d’économiser du temps et des efforts, car sans elle, le processus comporte de nombreuses étapes. Il existe différents outils et plateformes pour cette tâche.
Vous pouvez utiliser des services d’intégration et de déploiement continus (CI/CD) comme GitHub Actions ou des logiciels comme Jenkins. Ils vous permettent d’automatiser un pipeline de déploiement Laravel personnalisé.
Pour mettre en place l’automatisation dans GitHub Actions, créez un fichier .yml dans le répertoire de votre projet. Définissez le flux de travail et son événement déclencheur, comme pousser les changements vers la branche main. Ensuite, écrivez les tâches, les étapes et les variables d’environnement. Lisez le guide de démarrage rapide de GitHub Actions pour en savoir plus.
Par exemple, vous pouvez faire en sorte qu’à chaque fois qu’un utilisateur apporte de nouvelles modifications au code de la branche main, le fichier .yml exécute automatiquement la commande PHP artisan pour générer la clé d’application et redémarrer votre serveur web.
Utilisez Kodee, l’assistant IA de Hostinger VPS pour un déploiement plus facile
Hostinger propose gratuitement Kodee, un assistant IA pour VPS qui vous aide à améliorer l’efficacité de votre déploiement. Vous pouvez apprendre comment déployer un projet Laravel sur Hostinger et générer rapidement des instructions et des commandes pour n’importe quelle tâche à l’aide d’invites IA pour la gestion du VPS.
Par exemple, dites à Kodee : “Je veux déployer une application Laravel sur mon serveur Ubuntu à l’aide de Git. Expliquez-moi les étapes et générez les commandes pour cette tâche.” Il vous renverra une réponse complète, et vous pourrez suivre le guide et copier-coller les commandes générées.
Vous pouvez également utiliser Kodee pour vous aider à résoudre les erreurs survenues au cours du processus de déploiement de Laravel. Par exemple, “Je déploie une application Laravel sur un serveur Ubuntu. Cependant, j’ai trouvé une erreur lors de l’exécution de la commande PHP artisan pour migrer la base de données. Expliquez les causes possibles et les solutions.”
Pour accéder à cette fonctionnalité, ouvrez la page de configuration de VPS dans hPanel et sélectionnez Kodee dans la barre latérale.
Important ! Comme pour tout outil d’IA, nous vous recommandons de toujours tester les étapes et les commandes générées dans un environnement de développement afin d’éviter les accidents qui pourraient nuire à votre serveur réel.
Utiliser une bonne gestion de la dépendance
Composer permet aux développeurs de définir les dépendances de leurs applications dans le fichier composer.json. En plus de simplifier le processus d’installation, il améliore la stabilité de l’environnement et l’efficacité du contrôle des versions.
Exécutez la commande composer update pour récupérer tous les correctifs de dépendance spécifiés dans le fichier. Veillez toutefois à vérifier les nouvelles versions avant de le faire afin d’éviter les problèmes d’incompatibilité ou les mises à jour destructrices.
Pour accéder au fichier, naviguez jusqu’au répertoire racine de votre projet Laravel. En général, il est situé dans le chemin var/www/html/test-laravel.
Le fichier composer.json ne s’applique qu’à un environnement spécifique. Pour garantir une structure de projet propre et efficace, maintenez une documentation détaillée de la configuration des dépendances de chaque application ou composant.
La mise à jour régulière des dépendances d’un projet vous permet de bénéficier des derniers correctifs de sécurité et des dernières corrections de bogues. Elle permet également d’éviter les problèmes d’incompatibilité et les conflits de versions qui pourraient nuire à la fonctionnalité de votre application.
Optimiser les performances de Laravel
L’optimisation des performances de Laravel permet d’améliorer la réactivité et l’évolutivité des applications. Si vous gérez des services destinés aux consommateurs, elle peut également contribuer à améliorer l’expérience de l’utilisateur et la perception de la marque.
Il existe plusieurs méthodes pour optimiser les performances de Laravel dans un VPS Ubuntu. En voici quelques-unes :
- Activer la mise en cache. Laravel fournit des backends et des dispositifs de mise en cache pour stocker les données fréquemment demandées dans un stockage temporaire. Cela permet de réduire la charge du serveur et les requêtes de la base de données.
- Mettre en place un réseau de diffusion de contenu (CDN). Un CDN met en cache le contenu statique sur plusieurs serveurs dans le monde entier. Il permet à votre application web de fonctionner de manière optimale, quel que soit l’endroit où se trouve le visiteur.
- Utiliser les Workers en file d’attente. Les Workers de file d’attente sont des processus d’arrière-plan qui gèrent des tâches gourmandes en ressources. Ils permettent de décharger ces processus du flux principal de l’application afin d’améliorer les performances.
- Appliquer le chargement hâtif (eager loading). Le eager loading permet de récupérer les données liées à celles demandées en une seule requête. Il permet de réduire la charge puisque la base de données n’a pas besoin d’envoyer les informations individuellement.
En outre, surveillez toujours les performances de votre application web pour vous assurer qu’elle fonctionne de manière optimale. Cela vous permet de détecter rapidement les problèmes potentiels ayant un impact sur le temps de fonctionnement ou la facilité d’utilisation. Hostinger propose une fonction intégrée de surveillance des ressources du serveur, accessible via hPanel.
Conclusion
Laravel est un framework d’application web PHP open-source qui permet d’améliorer l’efficacité du développement web. Pour le déployer dans le VPS Hostinger, naviguez vers le menu Système d’exploitation dans hPanel et installez le modèle Ubuntu 22.04 avec Laravel. Ensuite, téléchargez votre projet via le gestionnaire de fichiers de CloudPanel.
Les utilisateurs à la recherche de plus de flexibilité peuvent également déployer Laravel manuellement à l’aide de commandes. Voici les étapes à suivre :
- Préparez le nouveau serveur. Installez Composer, le serveur web Apache, PHP et d’autres logiciels sur l’environnement de production. Vous pouvez également utiliser Laravel Forge pour les gérer sur une seule plateforme.
- Déployez l’application. Mettez en place un hôte virtuel en créant un fichier de configuration Apache. Poussez le code de votre application depuis un dépôt Git vers le serveur live.
- Configurez le fichier .env. Copiez le modèle .env.example dans le dossier de votre application et modifiez la paire clé-valeur du fichier .env pour ajuster ses paramètres.
- Exécutez l’application Laravel. Modifiez les autorisations et la propriété du dossier du projet. Exécutez les commandes composer install et PHP artisan, puis désactivez l’hôte virtuel par défaut d’Apache.
Pour améliorer l’efficacité du déploiement de l’application Laravel, utilisez Kodee, l’assistant VPS IA d’Hostinger, les outils d’automatisation et le gestionnaire de dépendances Composer. Configurez également un CDN, activez le cache et optimisez les requêtes de base de données pour améliorer les performances de votre application.
Comment déployer Laravel – FAQ
Dans cette section, nous répondrons à plusieurs questions courantes sur le déploiement d’un projet Laravel.
De quoi ai-je besoin pour déployer un projet Laravel ?
Pour déployer des applications Laravel, vous avez besoin d’un serveur fonctionnant sous un système d’exploitation compatible comme Ubuntu. Vous avez également besoin de plusieurs dépendances, comme un serveur web, PHP, des extensions PHP, Composer, Git et une base de données.
Il est également possible d’utiliser NGINX ou Apache. Les bases de données les plus populaires pour Laravel sont MySQL et MongoDB.
Puis-je déployer plusieurs applications Laravel sur le même serveur ?
Oui, vous pouvez déployer plusieurs applications sur un serveur Laravel avec un répertoire, des dépendances et des environnements de configuration dédiés.
Pour ce faire, créez des dossiers séparés pour les applications Laravel dans le chemin /var/www/html. Mettez en place des hôtes virtuels dédiés pour chaque projet et copiez le fichier .env dans chaque répertoire.
Puis-je faire évoluer mon application Laravel ?
Oui. Vous pouvez appliquer des méthodes d’extension courantes telles que la configuration d’équilibreurs de charge, la mise à niveau des ressources du serveur et la mise en place de mécanismes de mise en cache tels que Redis ou Memcached.
En outre, ce cadre dispose d’un système de file d’attente intégré qui décharge les tâches exigeantes en ressources du flux principal. Cela permet d’améliorer les performances des applications Laravel.