Maison > développement back-end > tutoriel php > Déployer des applications Web PHP à l'aide de Laravel Forge

Déployer des applications Web PHP à l'aide de Laravel Forge

王林
Libérer: 2023-09-04 12:10:01
original
1720 Les gens l'ont consulté

Les développeurs adorent l'automatisation : pour chaque processus entre le développement et la production, ils ont besoin d'un script pour rationaliser leur flux de travail. Il en va de même pour le déploiement.

Push Le processus de création et de déploiement final de votre application devrait ê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 avons fini par investir du temps et des ressources dans la configuration du serveur, la configuration de l'environnement, le déplacement de fichiers que nous ne pensions pas pertinents pour la version de production, etc.

Certains d'entre nous préfèrent utiliser FTP pour envoyer manuellement des fichiers à un serveur ou envoyer du code vers un référentiel GitHub, tandis que d'autres préfèrent utiliser un outil de déploiement pour simplifier le processus. Laravel Forge est l'un de ces outils qui facilite le déploiement de PHP.

Ne laissez pas le nom de la marque Laravel vous induire en erreur. En plus de Laravel, vous pouvez également utiliser ce service pour héberger WordPress, Symphony, Statamic ou tout autre projet Web à condition qu'il s'agisse de PHP. Personnellement, j'aime Laravel Forge car il est simple et facile de démarrer.

Dans ce tutoriel, je vais vous guider à travers les étapes de connexion de Laravel Forge à AWS et explorer les fonctionnalités qu'il a à offrir.

Aperçu

Laravel Forge vous permet de démarrer un serveur cloud et de gérer le 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 devez 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 le serveur. Installez le référentiel de contrôle de code source sur le serveur. Enfin, appuyez sur le bouton de déploiement. Facile, non ?

Les serveurs configurés à l'aide de Laravel Forge sont livrés avec la pile suivante :

  • Ubuntu 16.06
  • Je ne le fais pas
  • PHP7.2/7.1/7.0/5.6
  • MySQL/MariaDB/Postgres
  • Redis
  • Memcached

Après avoir créé le serveur, vous pouvez le configurer davantage.

Lors de votre inscription, vous pouvez choisir entre les différents forfaits proposés. J'ai choisi le forfait Basic à 12 $/mois ; cependant, vous bénéficiez d'un essai gratuit qui vous donne accès à tout ce qui figure sur la liste pendant cinq jours.

Après vous être connecté, vous verrez quelque chose comme ci-dessous.

使用Laravel Forge部署PHP Web应用程序

Vous pouvez choisir Digital Ocean, AWS, Linode et Vultr comme prestataires de services. Vous pouvez également utiliser Forge avec un VPC personnalisé. Quant au contrôle de source, Forge prend en charge GitHub, GitLab et Bitbucket. Dans ce didacticiel, j'aborderai les bases de la configuration d'AWS pour fonctionner avec Forge et GitHub pour le contrôle du code source. Une fois terminé, vous pourrez créer et configurer n'importe quel nombre de serveurs.

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

Configuration de Laravel Forge et AWS

Pour configurer Forge et AWS, vous devez suivre les étapes ci-dessous.

1. Connectez-vous à Laravel Forge

Connectez-vous à Laravel Forge et sélectionnez AWS comme fournisseur de services. Il vous sera demandé votre identifiant de clé d'accès (key) et votre clé d'accès secrète (secret). Vous devez créer un utilisateur IAM spécifique avec une stratégie qui fournit 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.

使用Laravel Forge部署PHP Web应用程序

Donnez à l'utilisateur un nom significatif et cochez la case Accès programmatique.

3. Choisissez la bonne politique

Définissez les autorisations correctes pour l'utilisateur IAM de laravel-forge. Créez de nouveaux groupes d'utilisateurs, car les groupes d'utilisateurs sont parfaits pour gérer les autorisations. Maintenant, la question naturelle est : « À quelles politiques l'utilisateur de la forge doit-il avoir accès ? » Bien que vous puissiez lui accorder un accès administrateur, vous ne devriez pas le faire.

使用Laravel Forge部署PHP Web应用程序

Si vous souhaitez que Forge crée et configure des serveurs en votre nom, vous devez ajouter deux politiques :

  1. AmazonEC2FullAccess
  2. AmazonVPCFulAccess

4. Enregistrez les informations d'identification et confirmez

Confirmez le compte IAM, sur la page suivante vous trouverez la clé d'accès et le mot de passe.

使用Laravel Forge部署PHP Web应用程序

Allez sur la page Laravel Forge et collez-les là-bas. C'est ça.

5. Liez votre compte GitHub à Forge

Si vous ne l'avez pas déjà fait, veuillez le faire en connectant votre compte GitHub/Bitbucket à Forge. Lorsque vous créez un serveur, Forge ajoute la clé publique à votre compte. Si vous devez ajouter un nouveau fournisseur de services et/ou mettre à jour le contrôle de source, vous pouvez trouver ces options dans votre profil.

Créer un nouveau serveur

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

使用Laravel Forge部署PHP Web应用程序

Si vous utilisez l'offre gratuite AWS, choisissez t2.micro avec 1 Go de RAM. Quant aux autres paramètres, j'utiliserai les valeurs par défaut. Il s'agit notamment des bases de données MySQL et PHP version 7.2. Vous pourrez personnaliser le nom de la base de données ultérieurement. Par souci de simplicité, j'ai décidé de ne pas utiliser d'équilibreur de charge. Si vous voulez connaître les secrets de la post-production, je l'ai abordé à la fin de ce tutoriel.

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

Interface de gestion du serveur

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

使用Laravel Forge部署PHP Web应用程序

Vous pouvez faire beaucoup de choses ici, comme :

  • Gestion du site Web
  • Ajouter une clé SSH
  • Configuration de la base de données
  • Mettre à jour les paramètres PHP
  • Organiser les tâches
  • Démarrez le démon
  • Gérer le réseau et configurer le pare-feu
  • Utilisez les applications de surveillance Blackfire ou Papertail
  • Métaparamètres de configuration

Il contient de nombreuses fonctionnalités. J'ai couvert les choses importantes dans ce tutoriel. Commençons par la gestion du site. D'après la documentation Forge :

Un site représente chaque "domaine" sur le serveur. Chaque serveur nouvellement configuré contient un site « par défaut ». Cependant, lorsque vous êtes prêt à lancer un site de production, vous devez le supprimer et créer un nouveau site avec un nom de domaine valide. 块引用>

Comme vous pouvez le constater, Forge a mis en place un site par défaut pour nous. Vous pouvez créer n'importe quel nombre de sites et les acheminer vers votre sous-domaine. Pour les besoins de ce didacticiel, je m'en tiendrai au site par défaut. Par défaut, le répertoire Web est défini sur /public. C'est ainsi que Laravel et la plupart des autres applications Web sont configurés.

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

Interface de gestion du site

Voici à quoi ressemble initialement l’interface.

使用Laravel Forge部署PHP Web应用程序

Vous pouvez installer ou installer WordPress à partir d'un référentiel Git. Pour les besoins de ce tutoriel, j'ai créé un exemple d'application Contactez-nous que vous pouvez intégrer à votre compte. Vous pouvez spécifier des noms de projet et de branche. Une fois terminé, vous devriez avoir le contrôle du déploiement de votre application.

使用Laravel Forge部署PHP Web应用程序

Je vais vous faire un rapide tour d’horizon des options disponibles.

Déployez maintenant et déployez rapidement

Pour déployer, vous pouvez déployer manuellement à l'aide du bouton Déployer maintenant. Vous pouvez également activer l'option Déploiement rapide, qui déploie automatiquement votre projet lorsque vous transmettez votre code vers la branche principale du référentiel GitHub de votre choix.

Script de déploiement

Le script de déploiement par défaut extrait le code du référentiel, installe les dépendances, démarre le serveur et exécute les migrations à chaque fois que l'application est déployée. Il s'agit du véritable script de déploiement.

cd /home/forge/redmonark.com
git pull origin laravelapi
composer install --no-interaction --prefer-dist --optimize-autoloader
echo "" | sudo -S service php7.2-fpm reload

if [ -f artisan ]
then
    php artisan migrate --force
fi
Copier après la connexion

Si vous avez besoin de le modifier et d'ajouter des éléments supplémentaires, vous le pouvez.

URL du déclencheur de déploiement

Vous pouvez l'utiliser pour intégrer votre application dans des services tiers ou créer des scripts de déploiement personnalisés. Lorsqu'une demande est reçue pour l'URL, le script de déploiement est déclenché.

Mettre à jour les référentiels et les branches

Vous pouvez utiliser ces options si vous devez mettre à jour une branche ou installer une version plus récente du même projet sur un référentiel différent. Si vous mettez à jour une 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 des fichiers d'environnement pour les applications. Certains détails, tels que les informations d'identification de la base de données, sont automatiquement ajoutés à l'environnement. Toutefois, si votre 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 en utilisant la méthode getenv().

Travailleurs de file d'attente

Démarrer un travailleur de file d'attente dans Forge revient à exécuter la commande queue:work Artisan. Forge utilise un moniteur de processus appelé superviseur pour gérer les files d'attente afin que les processus restent en cours d'exécution pour toujours. Vous pouvez créer plusieurs files d'attente en fonction de la priorité de la file d'attente ou de toute autre classification que vous jugez utile.

SSL

过去,为网站提供 SSL 保护绝非易事且免费。 Forge 允许您安装现有证书,或者您可以从 LetsEncrypt 获取免费证书。它既快速又简单。如果您需要通配符子域的 SSL,您可以将免费的 Cloudflare 证书添加到 Forge。

回到服务器管理界面,我们有SSH密钥。

添加 SSH 密钥

虽然仪表板上提供了大多数可配置选项,但如果您需要连接到服务器,则应该使用 SSH 来完成。 SSH 是登录 VPS 的更安全的方式,并且提供比密码更多的保护。

要通过 SSH 访问服务器,您需要生成密钥对(如果尚未生成)。服务器将可以访问公钥,而私钥将驻留在您的主机中。然后,您可以使用该设置连接到服务器实例。

使用Laravel Forge部署PHP Web应用程序

注意:从服务器管理仪表板添加的 SSH 密钥将特定于该服务器。如果您需要从现在开始自动将密钥添加到所有服务器,您可以从您的个人资料设置中添加它们。

要生成密钥对,请运行以下命令。

ssh-keygen -t rsa
Copier après la connexion

系统会询问您几个问题,例如您想要存储密钥的文件以及用于提高安全性的密码。接下来,将 SSH 密钥添加到 ssh-agent。

ssh-add ~/.ssh/id_rsa
Copier après la connexion

复制公钥并将其添加到 Forge 的 SSH 密钥列表中。

cat ~/.ssh/id_rsa.pub  # Copy the output of this command
Copier après la connexion

配置 PHP 和 MySQL

您可以使用该界面来配置 PHP 和 MySQL。对于数据库,可用的选项包括:

  • 创建新数据库。
  • 添加新用户。
  • 更新用户对数据库的访问权限。
  • 更新 Forge 有关密码的知识。

确保在 .env 文件中填写更新的数据。

您可以配置以下 PHP 设置:

  • 升级到最新版本的 PHP。
  • 更改上传文件大小。
  • 针对生产环境优化 OPCache,以便将编译后的 PHP 代码存储在内存中。

其他重要设置

这里我列出了一些其他可用的设置。

安排任务

您可以使用 Forge 的调度程序来安排重复任务或运行 cron 作业。如果您需要定期发送电子邮件、清理某些内容或运行脚本,则可以使用任务计划程序。默认情况下会创建一个任务,该任务每晚运行 composer self-update 。您可以尝试以您选择的频率安排新的会议。

启动守护进程

守护进程是在后台进程中运行的计算机程序。 Laravel Forge 允许您启动守护进程并使用 Supervisor 来确保守护进程保持运行。如果守护进程由于某种原因崩溃,Supervisor 将自动重新启动脚本。

监控应用程序

Laravel Forge 内置了对工具的支持,这些工具可以通过收集有关资源(例如内存、CPU 时间和 I/O 操作)的数据来监控应用程序的性能指标。可用的工具有 B​​lackfire.io 和 Papertrail。要开始分析您的应用程序,您只需从第三方网站检索正确的凭据即可。

配置服务器网络和防火墙

如果您需要更新防火墙设置,则无需前往 AWS 控制台即可完成此操作。您可以从仪表板创建新的防火墙规则。如果您有使用相同提供商和区域配置的其他服务器,则可以设置服务器网络,以便它们可以轻松通信。

摘要

Laravel Forge 是一个令人难以置信的工具,它使部署变得轻而易举。它具有大量功能和易于使用的 UI,可让您轻松创建和配置服务器并部署应用程序。配置服务提供商后,您很可能不需要再次访问 AWS 控制台来管理服务器。

在本教程中,我介绍了使用 Laravel Forge 配置 AWS 的基础知识以及配置服务器和部署应用程序的步骤。我还讨论了 Forge 界面中几乎所有可用的功能。

对于那些刚刚开始使用 Laravel 或希望通过扩展来扩展您的知识、网站或应用程序的人,我们在 Envato Market 中提供了您可以学习的各种内容。

您是否有使用 Laravel Forge 或任何其他流行部署工具部署 PHP 应用程序的经验可以分享?让我们在评论中知道。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal