Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Laravel
Code

Déployer des applications Web PHP avec Laravel Forge

by
Difficulty:BeginnerLength:LongLanguages:

French (Français) translation by honeymmmm (you can also view the original English article)

Les développeurs aiment automatiser les choses - pour chaque processus entre le développement et la production, ils souhaitent disposer d'un script facilitant leur flux de travail. C'est également le cas avec le déploiement.

Le processus consistant à pousser la version finale et à déployer l'application doit être aussi simple que d'appuyer sur le bouton Déployer maintenant, mais ce n'est pas ce qui se produit la plupart du temps. Nous finissons par investir notre temps et nos ressources dans la configuration du serveur, la configuration de l'environnement, le déplacement de fichiers que nous pensions ne pas être pertinents pour les versions de production, etc.

Certains d'entre nous préfèrent envoyer des fichiers au serveur manuellement via FTP ou faire insérer le code dans un dépôt GitHub, tandis que d'autres préfèrent un outil de déploiement pour faciliter le processus. Laravel Forge est un outil qui facilite grandement le déploiement de PHP.

Ne laissez pas le nom de marque Laravel vous induire en erreur. En dehors de Laravel, vous pouvez utiliser le service pour héberger WordPress, Symphony, Statamic ou tout autre projet Web pourvu que ce soit en PHP. Personnellement, j'aime bien Laravel Forge pour sa simplicité et sa facilité d'adaptation.

Dans ce didacticiel, je vais vous expliquer les étapes à suivre pour connecter Laravel Forge à AWS et explorer son offre.

Vue d'ensemble

Laravel Forge vous permet de créer des serveurs cloud et de gérer les processus de déploiement à l'aide de Git et de certains des fournisseurs de serveurs populaires disponibles. Le processus est expliqué ci-dessous:

Tout d'abord, vous devrez connecter AWS ou tout autre fournisseur de cloud à votre compte Forge. Ensuite, liez votre contrôle de code source tel que GitHub à Forge. Vous allez maintenant pouvoir créer des serveurs. Installez votre référentiel de contrôle de source sur le serveur. Enfin, appuyez sur le bouton de déploiement. Assez facile, non?

Les serveurs fournis avec Laravel Forge sont livrés avec la pile suivante:

  • Ubuntu 16.06
  • Nginx
  • PHP 7.2/7.1/7.0/5.6
  • MySQL/MariaDB/Postgres
  • Redis
  • Memcached

Une fois le serveur créé, vous pouvez configurer davantage.

Lorsque vous vous inscrivez, vous pouvez choisir entre les différents forfaits proposés. J'ai opté pour le plan de base de 12 $ / mois; Cependant, vous aurez un essai gratuit avec un accès à tout ce qui est sur la liste pendant cinq jours.

Une fois que vous êtes connecté, vous verrez quelque chose comme ceci ci-dessous.

Screenshot of Laravel Forge main screen once youre logged in

Vous pouvez choisir entre Digital Ocean, AWS, Linode et Vultr pour le fournisseur de services. Vous pouvez également utiliser Forge avec un VPC personnalisé. En ce qui concerne le contrôle de source, Forge prend en charge GitHub, GitLab et Bitbucket. Dans ce tutoriel, je vais aborder les principes de base de la configuration d'AWS pour fonctionner avec Forge et GitHub pour le contrôle de source. Une fois que vous avez terminé, vous pourrez créer et mettre en service un nombre illimité de serveurs.

Si vous utilisez un autre fournisseur de services figurant sur la liste, vous pouvez ignorer cette étape et nous rejoindre plus tard, après avoir configuré AWS et Laravel Forge.

Configuration de Laravel Forge et AWS

Pour configurer Forge et AWS, voici les étapes à suivre.

1. Connectez-vous à Laravel Forge

Connectez-vous à Laravel Forge et choisissez AWS en tant que fournisseur de services. On vous demandera un ID de clé d'accès (clé) et une clé d'accès secrète (secret). Vous devrez créer un utilisateur IAM spécifique avec une stratégie offrant un accès suffisant à Laravel Forge. IAM est le moyen utilisé par Amazon pour mapper les autorisations sur chaque utilisateur afin que vous puissiez révoquer l'accès en cas de problème.

2. Créer un nouvel utilisateur IAM

Connectez-vous à la console AWS et créez un nouvel utilisateur IAM.

Create an IAM user on AWS with programmatic access

Donnez à l'utilisateur un nom explicite et cochez la case intitulée Accès par programmation

3. Choisissez la bonne politique

Définissez l'autorisation appropriée pour l'utilisateur IAM laravel-forge. Créez un nouveau groupe d'utilisateurs car les groupes d'utilisateurs sont idéaux pour la gestion des autorisations. Maintenant, la question naturelle est: "À quelles politiques l'utilisateur de la forge doit-il avoir accès?" Bien que vous puissiez le fournir avec AdministratorAccess, vous ne devriez pas.

Create a user group with the right permissions

Si vous avez besoin de Forge pour créer et provisionner des serveurs en votre nom, vous devrez ajouter deux stratégies:

  1. AmazonEC2FullAccess
  2. AmazonVPCFullAccess

4. Enregistrez les informations d'identification et confirmez

Confirmez le compte IAM et, à la page suivante, vous trouverez la clé d'accès et le code secret.

Newly generated Access key and secret

Rendez-vous sur la page Laravel Forge et collez-les à cet endroit. C'est tout.

5. Liez votre compte GitHub à Forge

Connectez votre compte GitHub / Bitbucket à Forge si vous ne l’avez pas déjà fait. Forge va ajouter une clé publique à votre compte lorsque vous créez un serveur. Si vous devez ajouter un nouveau fournisseur de service et / ou mettre à jour le contrôle de source, vous disposez de ces options dans votre profil.

Créer un nouveau serveur

Accédez à la page Créer un serveur pour ajouter un nouveau serveur.

Laravel Forges interface for adding a new server

Choisissez t2.micro avec 1 Go de RAM si vous êtes sur le niveau gratuit AWS. En ce qui concerne les autres paramètres, je vais aller avec les paramètres par défaut. Cela inclut MySQL pour la base de données et PHP version 7.2. Vous pouvez personnaliser le nom de la base de données ultérieurement. Pour rester simple, j'ai décidé de ne pas utiliser d'équilibreur de charge. Si vous vous interrogez sur la recette de post-production, je vous en parlerai à la fin de ce tutoriel.

La création du serveur peut prendre jusqu'à cinq minutes. Vous recevrez les informations d'identification pour l'accès sudo. Rangez-les dans un endroit sûr afin de pouvoir les utiliser ultérieurement. Pour voir que les choses fonctionnent comme prévu, allez à l'adresse IP du serveur et vous devriez voir la sortie de phpinfo() sur votre écran.

Interface de gestion de serveur

L'interface que vous voyez après la création d'un serveur est le tableau de bord de gestion du serveur.

Server management dashboard

Vous pouvez faire beaucoup de choses ici, telles que:

  • administration du site
  • ajout de clés SSH
  • configuration de la base de données
  • mise à jour des paramètres PHP
  • programmer une tâche
  • démarrer un démon
  • gestion du réseau et configuration du pare-feu
  • application de surveillance utilisant Blackfire ou Papertail
  • configuration des meta settings

Cela fait beaucoup de fonctionnalités incluses ici. J'ai couvert les points importants de ce tutoriel. Commençons par la gestion du site. Selon les documents de la Forge:

Les sites représentent chaque "domaine" sur votre serveur. Le site "par défaut" est inclus avec chaque serveur fraîchement mis à disposition; Toutefois, vous devez le supprimer et créer un nouveau site avec un nom de domaine valide lorsque vous êtes prêt à lancer votre site de production.

Comme vous pouvez le constater, Forge a déjà configuré un site par défaut pour nous. Vous pouvez créer un nombre illimité de sites et les acheminer vers vos sous-domaines. Pour les besoins de ce tutoriel, je vais m'en tenir au site par défaut. Le répertoire Web est défini sur /public par défaut. Voici comment il devrait être configuré pour Laravel et la plupart des autres applications Web.

Si vous cliquez sur un site spécifique, vous verrez l'interface de gestion de site. Vous pouvez gérer, déployer et configurer des sites individuels à partir d'ici.

Interface de gestion de site

Voici à quoi ressemble l'interface initialement.

You can add the Git repo from this screen

Vous pouvez installer à partir d'un référentiel Git ou installer WordPress. Dans le cadre de ce tutoriel, j'ai créé un exemple d'application Contact us que vous pouvez insérer dans votre compte. Vous pouvez spécifier le nom du projet et de la branche. Une fois que vous avez terminé, vous devriez avoir les contrôles pour déployer votre application.

Site management dashboard with deployment controls

Je vais vous donner un aperçu des options disponibles.

Déployer maintenant et déploiement rapide

Pour déployer, vous pouvez déployer manuellement en utilisant le bouton Deploy now. Vous pouvez également activer l'option Quick Deploy, qui déploie automatiquement le projet lorsque vous insérez du code dans la branche principale du référentiel GitHub choisi.

Script de déploiement

Le script de déploiement par défaut extrait le code du référentiel, installe des dépendances, démarre le serveur et exécute les migrations à chaque déploiement de l'application. Voici le script de déploiement actuel.

Si vous avez besoin de le peaufiner et d'ajouter quelque chose de plus, vous pouvez.

URL du déclencheur de déploiement

Vous pouvez l'utiliser pour intégrer votre application à un service tiers ou créer un script de déploiement personnalisé. Lorsque l'URL reçoit une demande, le script de déploiement est déclenché.

Mettre à jour le repo et la branche

Si vous devez mettre à jour la branche ou installer une version plus récente du même projet sur un référentiel différent, vous pouvez utiliser ces options. Si vous mettez à jour la branche, vous devrez peut-être également mettre à jour le nom de la branche dans le script de déploiement.

Environnement

Forge génère automatiquement un fichier d'environnement pour l'application. Certains détails, tels que les informations d'identification de la base de données, sont automatiquement ajoutés à l'environnement. Toutefois, si l'application utilise une API, vous pouvez placer la clé API en toute sécurité dans l'environnement. Même si vous exécutez une application Web PHP générique, vous pouvez accéder aux variables ENV à l'aide de la méthode getenv().

Travailleur en file d'attente

Démarrer un utilisateur de file d'attente dans Forge revient à exécuter la commande queue:work Artisan. Forge gère les travailleurs de la file d'attente à l'aide d'un moniteur de processus appelé Superviseur afin que le processus continue de s'exécuter en permanence. Vous pouvez créer plusieurs files d'attente en fonction de leur priorité ou de toute autre classification que vous jugez utile.

SSL

Sécuriser SSL pour un site Web était tout sauf simple et gratuit dans le passé. Forge vous permet d'installer un certificat existant ou vous pouvez obtenir un certificat gratuit auprès de LetsEncrypt. C'est rapide et facile Si vous avez besoin de SSL pour les sous-domaines génériques, vous pouvez ajouter les certificats gratuits Cloudflare à Forge.

De retour à l'interface Server Management, nous avons des clés SSH

Ajout de clés SSH

Bien que la plupart des options configurables soient disponibles sur le tableau de bord, si vous devez vous connecter au serveur, utilisez plutôt SSH. SSH est le moyen le plus sécurisé de se connecter à un VPS et offre plus de protection que les mots de passe.

Pour accéder au serveur via SSH, vous devrez générer une paire de clés si ce n'est déjà fait. La clé publique sera rendue accessible au serveur et la clé privée résidera dans votre hôte. Vous pouvez ensuite utiliser la configuration pour vous connecter à l'instance du serveur.

Adding SSH keys to Forge server

Remarque: La clé SSH ajoutée à partir du tableau de bord de gestion du serveur sera spécifique à ce serveur. Si vous avez besoin d'ajouter automatiquement des clés à tous les serveurs à partir de là, vous pouvez les ajouter à partir de vos paramètres de profil.

Pour générer une paire de clés, exécutez la commande suivante.

On vous posera quelques questions, telles que le fichier dans lequel vous souhaitez stocker la clé et la phrase secrète pour plus de sécurité. Ensuite, ajoutez la clé SSH à ssh-agent.

Copiez la clé publique et ajoutez-la à la liste des clés SSH de Forge.

Configurer PHP et MySQL

Vous pouvez utiliser l'interface pour configurer PHP et MySQL. Pour la base de données, les options disponibles incluent:

  • Créer de nouvelles bases de données.
  • Ajouter de nouveaux utilisateurs.
  • Mettre à jour l'accès des utilisateurs à une base de données.
  • Mettez à jour les connaissances de Forge sur le mot de passe.

Assurez-vous de renseigner les données mises à jour dans votre fichier .env.

Vous pouvez configurer les paramètres PHP suivants:

  • Passez à la dernière version de PHP.
  • Changer la taille du fichier de téléchargement.
  • Optimisez OPCache pour la production afin que le code PHP compilé soit stocké en mémoire.

Autres paramètres importants

Ici, j'ai énuméré certains des autres paramètres disponibles.

Planifier une tâche

Vous pouvez utiliser le planificateur de Forge pour planifier des tâches récurrentes ou exécuter des tâches périodiques. Si vous devez envoyer régulièrement des courriers électroniques, nettoyer quelque chose ou exécuter un script, vous pouvez utiliser le planificateur de tâches. Une tâche est créée par défaut et exécute composer self-update chaque soir. Vous pouvez essayer de planifier un nouveau avec une fréquence de votre choix

Démarrer un démon

Un démon est un programme informatique qui s'exécute en arrière-plan. Laravel Forge vous permet de démarrer un démon et utilise Supervisor pour s'assurer que le démon continue de fonctionner. Si le démon se bloque pour une raison quelconque, Supervisor redémarre automatiquement le script.

Surveillance de l'application

Laravel Forge prend en charge des outils permettant de surveiller les mesures de performances de votre application en rassemblant des données sur les ressources telles que la mémoire, le temps processeur et les opérations d'E / S. Les outils disponibles sont Blackfire.io et Papertrail. Pour commencer à profiler votre application, il vous suffit de récupérer les informations d'identification correctes du site Web tiers, et c'est tout.

Configuration du réseau du serveur et du pare-feu

Si vous devez mettre à jour les paramètres du pare-feu, vous n'avez pas besoin d'accéder à la console AWS pour que cela se produise. Vous pouvez créer de nouvelles règles de pare-feu à partir du tableau de bord. Si vous avez d'autres serveurs configurés à l'aide du même fournisseur et de la même région, vous pouvez configurer un réseau de serveurs afin qu'ils puissent communiquer sans douleur.

Résumé

Laravel Forge est un outil incroyable qui facilite grandement le déploiement. Il possède une multitude de fonctionnalités et une interface utilisateur conviviale qui vous permet de créer et de provisionner des serveurs et de déployer des applications sans souci. Une fois que vous avez configuré le fournisseur de services, il y a de fortes chances que vous n'ayez pas besoin d'accéder à la console AWS pour gérer à nouveau le serveur.

Dans ce didacticiel, j'ai présenté les bases de la configuration d'AWS avec Laravel Forge et les étapes à suivre pour configurer un serveur et déployer une application. J'ai également discuté de presque toutes les fonctionnalités disponibles dans l'interface de Forge.

Pour ceux d'entre vous qui débutent avec Laravel ou qui souhaitent élargir leurs connaissances, leur site ou leur application avec des extensions, nous pouvons étudier de nombreuses choses sur le marché Envato.

Avez-vous une expérience à partager avec le déploiement d'applications PHP utilisant Laravel Forge ou tout autre outil de déploiement populaire? Faites le nous savoir dans les commentaires.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.