Heim > Artikel > Backend-Entwicklung > Stellen Sie PHP-Webanwendungen mit Laravel Forge bereit
Entwickler lieben Automatisierung – für jeden Prozess zwischen Entwicklung und Produktion benötigen sie ein Skript, um ihren Arbeitsablauf zu optimieren. Das Gleiche gilt für die Bereitstellung.
Push Der Prozess zum endgültigen Erstellen und Bereitstellen Ihrer Anwendung sollte so einfach sein wie das Klicken auf die Schaltfläche „Jetzt bereitstellen“, aber das passiert meistens nicht. Am Ende investierten wir Zeit und Ressourcen in die Konfiguration des Servers, die Einrichtung der Umgebung, das Verschieben von Dateien, die unserer Meinung nach für den Produktionsaufbau nicht relevant waren usw. Einige von uns bevorzugen die Verwendung von FTP, um Dateien manuell an einen Server zu senden oder Code an ein GitHub-Repository zu übertragen, während andere lieber ein Bereitstellungstool verwenden, um den Prozess zu vereinfachen. Laravel Forge ist ein solches Tool, das die PHP-Bereitstellung zum Kinderspiel macht.
Lassen Sie sich nicht vom Markennamen Laravel in die Irre führen. Zusätzlich zu Laravel können Sie diesen Dienst auch zum Hosten von WordPress, Symphony, Statamic oder jedem anderen Webprojekt verwenden, sofern es sich um PHP handelt. Persönlich mag ich Laravel Forge, weil es einfach und leicht zu bedienen ist.
In diesem Tutorial werde ich Sie durch die Schritte zum Verbinden von Laravel Forge mit AWS führen und die Funktionen erkunden, die es zu bieten hat.
Übersicht
Zuerst müssen Sie AWS oder einen anderen Cloud-Anbieter mit Ihrem Forge-Konto verbinden. Als nächstes verknüpfen Sie Ihre Quellcodeverwaltung (z. B. GitHub) mit Forge. Sie können nun den Server erstellen. Installieren Sie das Quellcodeverwaltungs-Repository auf dem Server. Drücken Sie abschließend die Bereitstellungstaste. Einfach, oder?
Mit Laravel Forge konfigurierte Server werden mit dem folgenden Stack geliefert:
Ubuntu 16.06
Wenn Sie sich anmelden, können Sie zwischen den verschiedenen angebotenen Plänen wählen. Ich habe mich für den Basic-Plan für 12 $/Monat entschieden; Sie erhalten jedoch eine kostenlose Testversion, mit der Sie fünf Tage lang auf alles auf der Liste zugreifen können.
Nachdem Sie sich angemeldet haben, sehen Sie etwas wie unten.
Als Dienstleister können Sie Digital Ocean, AWS, Linode und Vultr wählen. Alternativ können Sie Forge mit einer benutzerdefinierten VPC verwenden. Was die Quellcodeverwaltung betrifft, unterstützt Forge GitHub, GitLab und Bitbucket. In diesem Tutorial bespreche ich die Grundlagen der Konfiguration von AWS für die Zusammenarbeit mit Forge und GitHub zur Quellcodeverwaltung. Nach Abschluss können Sie eine beliebige Anzahl von Servern erstellen und konfigurieren.
Wenn Sie einen anderen Dienstanbieter auf der Liste nutzen, können Sie diesen Schritt überspringen und uns später kontaktieren, nachdem wir AWS und Laravel Forge konfiguriert haben.
Einrichten von Laravel Forge und AWS
1. Melden Sie sich bei Laravel Forge an
2. Neuen IAM-Benutzer erstellen
Geben Sie dem Benutzer einen aussagekräftigen Namen und aktivieren Sie das Kontrollkästchen „Programmatischer Zugriff“.
3. Wählen Sie die richtige Police Legen Sie die richtigen Berechtigungen für den Laravel-Forge-IAM-Benutzer fest. Erstellen Sie neue Benutzergruppen, da sich Benutzergruppen hervorragend zum Verwalten von Berechtigungen eignen. Die natürliche Frage lautet nun: „Auf welche Richtlinien sollte der Forge-Benutzer Zugriff haben?“ Obwohl Sie ihm Administratorzugriff gewähren können, sollten Sie dies nicht tun.
Wenn Sie möchten, dass Forge in Ihrem Namen Server erstellt und konfiguriert, müssen Sie zwei Richtlinien hinzufügen:AmazonEC2FullAccess
AmazonVPCFulAccess
5. Verknüpfen Sie Ihr GitHub-Konto mit Forge
Falls noch nicht geschehen, verknüpfen Sie bitte Ihr GitHub-/Bitbucket-Konto mit Forge. Wenn Sie einen Server erstellen, fügt Forge den öffentlichen Schlüssel zu Ihrem Konto hinzu. Wenn Sie einen neuen Dienstanbieter hinzufügen und/oder die Quellcodeverwaltung aktualisieren müssen, finden Sie diese Optionen in Ihrem Profil.
Gehen Sie zur Seite „Server erstellen“, um einen neuen Server hinzuzufügen.
Wenn Sie AWS Free Kontingent nutzen, wählen Sie t2.micro mit 1 GB RAM. Für die anderen Einstellungen verwende ich die Standardwerte. Dazu gehören die Datenbanken MySQL und PHP Version 7.2. Sie können den Datenbanknamen später anpassen. Der Einfachheit halber habe ich mich entschieden, keinen Load Balancer zu verwenden. Wenn Sie die Geheimnisse der Postproduktion kennenlernen möchten, habe ich das am Ende dieses Tutorials behandelt.
Das Erstellen des Servers kann bis zu fünf Minuten dauern. Sie erhalten Zugangsdaten für den Sudo-Zugriff. Bewahren Sie sie an einem sicheren Ort auf, damit Sie sie in Zukunft verwenden können. Um zu sehen, ob alles wie erwartet funktioniert, rufen Sie die IP-Adresse Ihres Servers auf und Sie sollten die Ausgabe von phpinfo()
auf Ihrem Bildschirm sehen.
Die Schnittstelle, die Sie nach dem Erstellen eines Servers sehen, ist das Serververwaltungs-Dashboard.
Man kann hier vieles machen, wie zum Beispiel:
Es sind viele Funktionen gebündelt. Ich habe die wichtigen Dinge in diesem Tutorial behandelt. Beginnen wir mit der Site-Verwaltung. Laut Forge-Dokumentation:
Eine Site repräsentiert jede „Domäne“ auf dem Server. Jeder neu konfigurierte Server enthält eine „Standard“-Site. Wenn Sie jedoch bereit sind, eine Produktions-Site zu starten, sollten Sie diese löschen und eine neue Site mit einem gültigen Domänennamen erstellen. 块引用>Wie Sie sehen, hat Forge eine Standardseite für uns eingerichtet. Sie können beliebig viele Websites erstellen und diese an Ihre Subdomain weiterleiten. Für die Zwecke dieses Tutorials bleibe ich bei der Standardseite. Standardmäßig ist das Webverzeichnis auf
/public
eingestellt. So werden Laravel und die meisten anderen Webanwendungen konfiguriert.Wenn Sie auf eine bestimmte Site klicken, wird die Site-Verwaltungsoberfläche angezeigt. Von hier aus können Sie einzelne Sites verwalten, bereitstellen und konfigurieren.
Site-Management-Schnittstelle
So sieht die Benutzeroberfläche zunächst aus.
Sie können WordPress aus einem Git-Repository installieren oder installieren. Für dieses Tutorial habe ich eine Beispielanwendung „Kontakt“ erstellt, die Sie in Ihr Konto einbinden können. Sie können Projekt- und Zweignamen angeben. Nach Abschluss sollten Sie die Kontrolle über die Bereitstellung Ihrer Anwendung haben.
Ich werde Sie durch einen kurzen Überblick über die verfügbaren Optionen führen.
Jetzt bereitstellen und schnell bereitstellenZur Bereitstellung können Sie die Bereitstellung manuell über die Schaltfläche „Jetzt bereitstellen“ durchführen. Alternativ können Sie die Option „Schnelle Bereitstellung“ aktivieren, die Ihr Projekt automatisch bereitstellt, wenn Sie Ihren Code in den Master-Zweig des von Ihnen gewählten GitHub-Repositorys übertragen.
Bereitstellungsskript Das Standard-Bereitstellungsskript ruft Code aus dem Repository ab, installiert Abhängigkeiten, startet den Server und führt bei jeder Bereitstellung der Anwendung Migrationen durch. Dies ist das eigentliche Bereitstellungsskript.
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 fiWenn Sie es optimieren und zusätzliche Dinge hinzufügen müssen, können Sie das tun.
Bereitstellungs-Trigger-URLSie können damit Ihre Anwendung in Dienste von Drittanbietern integrieren oder benutzerdefinierte Bereitstellungsskripts erstellen. Wenn eine Anfrage für die URL eingeht, wird das Bereitstellungsskript ausgelöst.
Aktualisieren Sie Repositorys und Zweige
Sie können diese Optionen verwenden, wenn Sie einen Zweig aktualisieren oder eine neuere Version desselben Projekts in einem anderen Repository installieren müssen. Wenn Sie einen Zweig aktualisieren, müssen Sie möglicherweise auch den Zweignamen im Bereitstellungsskript aktualisieren.
Umwelt Forge generiert automatisch Umgebungsdateien für Anwendungen. Einige Details, wie z. B. Datenbankanmeldeinformationen, werden der Umgebung automatisch hinzugefügt. Wenn Ihre Anwendung jedoch eine API verwendet, können Sie den API-Schlüssel sicher in der Umgebung platzieren. Auch wenn Sie eine generische PHP-Webanwendung ausführen, können Sie mit der
-Methode auf ENV-Variablen zugreifen.Warteschlangenarbeiter
Das Starten eines Warteschlangenarbeiters in Forge ist dasselbe wie das Ausführen des
Artisan-Befehls. Forge verwendet einen Prozessmonitor namens Supervisor, um Warteschlangenarbeiter zu verwalten, sodass Prozesse für immer ausgeführt werden. Sie können mehrere Warteschlangen basierend auf der Warteschlangenpriorität oder einer anderen für Sie nützlichen Klassifizierung erstellen.
getenv()
SSL
过去,为网站提供 SSL 保护绝非易事且免费。 Forge 允许您安装现有证书,或者您可以从 LetsEncrypt 获取免费证书。它既快速又简单。如果您需要通配符子域的 SSL,您可以将免费的 Cloudflare 证书添加到 Forge。
回到服务器管理界面,我们有SSH密钥。
添加 SSH 密钥
虽然仪表板上提供了大多数可配置选项,但如果您需要连接到服务器,则应该使用 SSH 来完成。 SSH 是登录 VPS 的更安全的方式,并且提供比密码更多的保护。
要通过 SSH 访问服务器,您需要生成密钥对(如果尚未生成)。服务器将可以访问公钥,而私钥将驻留在您的主机中。然后,您可以使用该设置连接到服务器实例。
注意:从服务器管理仪表板添加的 SSH 密钥将特定于该服务器。如果您需要从现在开始自动将密钥添加到所有服务器,您可以从您的个人资料设置中添加它们。
要生成密钥对,请运行以下命令。
ssh-keygen -t rsa系统会询问您几个问题,例如您想要存储密钥的文件以及用于提高安全性的密码。接下来,将 SSH 密钥添加到 ssh-agent。
ssh-add ~/.ssh/id_rsa复制公钥并将其添加到 Forge 的 SSH 密钥列表中。
cat ~/.ssh/id_rsa.pub # Copy the output of this command配置 PHP 和 MySQL
您可以使用该界面来配置 PHP 和 MySQL。对于数据库,可用的选项包括:
- 创建新数据库。
- 添加新用户。
- 更新用户对数据库的访问权限。
- 更新 Forge 有关密码的知识。
确保在 .env 文件中填写更新的数据。
您可以配置以下 PHP 设置:
- 升级到最新版本的 PHP。
- 更改上传文件大小。
- 针对生产环境优化 OPCache,以便将编译后的 PHP 代码存储在内存中。
其他重要设置
这里我列出了一些其他可用的设置。
安排任务
您可以使用 Forge 的调度程序来安排重复任务或运行 cron 作业。如果您需要定期发送电子邮件、清理某些内容或运行脚本,则可以使用任务计划程序。默认情况下会创建一个任务,该任务每晚运行
composer self-update
。您可以尝试以您选择的频率安排新的会议。启动守护进程
守护进程是在后台进程中运行的计算机程序。 Laravel Forge 允许您启动守护进程并使用 Supervisor 来确保守护进程保持运行。如果守护进程由于某种原因崩溃,Supervisor 将自动重新启动脚本。
监控应用程序
Laravel Forge 内置了对工具的支持,这些工具可以通过收集有关资源(例如内存、CPU 时间和 I/O 操作)的数据来监控应用程序的性能指标。可用的工具有 Blackfire.io 和 Papertrail。要开始分析您的应用程序,您只需从第三方网站检索正确的凭据即可。
配置服务器网络和防火墙
如果您需要更新防火墙设置,则无需前往 AWS 控制台即可完成此操作。您可以从仪表板创建新的防火墙规则。如果您有使用相同提供商和区域配置的其他服务器,则可以设置服务器网络,以便它们可以轻松通信。
摘要
Laravel Forge 是一个令人难以置信的工具,它使部署变得轻而易举。它具有大量功能和易于使用的 UI,可让您轻松创建和配置服务器并部署应用程序。配置服务提供商后,您很可能不需要再次访问 AWS 控制台来管理服务器。
在本教程中,我介绍了使用 Laravel Forge 配置 AWS 的基础知识以及配置服务器和部署应用程序的步骤。我还讨论了 Forge 界面中几乎所有可用的功能。
对于那些刚刚开始使用 Laravel 或希望通过扩展来扩展您的知识、网站或应用程序的人,我们在 Envato Market 中提供了您可以学习的各种内容。
您是否有使用 Laravel Forge 或任何其他流行部署工具部署 PHP 应用程序的经验可以分享?让我们在评论中知道。
Das obige ist der detaillierte Inhalt vonStellen Sie PHP-Webanwendungen mit Laravel Forge bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!