開發人員喜歡實現自動化 - 對於開發和生產之間的每個流程,他們都渴望有一個腳本來簡化他們的工作流程。部署也是如此。
#推送最終建置和部署應用程式的過程應該像按下立即部署按鈕一樣簡單,但這並不是大多數時候發生的情況。我們最終投入了時間和資源來配置伺服器、設定環境、移動我們認為與生產建置無關的檔案等等。
我們中的一些人更喜歡使用 FTP 手動將檔案傳送到伺服器或將程式碼推送到 GitHub 儲存庫,而其他人則喜歡使用部署工具來簡化流程。 Laravel Forge 就是這樣一個讓 PHP 部署變得輕鬆的工具。
不要讓 Laravel 品牌名稱誤導您。除了 Laravel 之外,您還可以使用該服務來託管 WordPress、Symphony、Statamic 或任何其他 Web 項目,只要它是 PHP 即可。就我個人而言,我喜歡 Laravel Forge,因為它簡單且易於上手。
在本教學中,我將引導您完成將 Laravel Forge 與 AWS 連接的步驟,並探索它所提供的功能。
Laravel Forge 可讓您使用 Git 和一些可用的流行伺服器供應商啟動雲端伺服器並處理部署過程。過程解釋如下:
首先,您需要將 AWS 或任何其他雲端供應商連接到您的 Forge 帳戶。接下來,將您的原始碼管理(例如 GitHub)連結到 Forge。您現在將能夠創建伺服器。在伺服器上安裝原始碼控制儲存庫。最後,按下部署按鈕。很容易,對吧?
使用 Laravel Forge 設定的伺服器附帶以下堆疊:
建立伺服器後,您可以進一步配置。
註冊時,您可以在他們提供的不同計劃之間進行選擇。我選擇了 12 美元/月的基本計劃;但是,您將獲得免費試用期,可以在五天內訪問清單中的所有內容。
登入後,您將看到如下所示的內容。
您可以選擇 Digital Ocean、AWS、Linode 和 Vultr 作為服務提供者。或者,您也可以將 Forge 與自訂 VPC 結合使用。至於原始碼控制,Forge 支援 GitHub、GitLab 和 Bitbucket。在本教程中,我將討論配置 AWS 以與 Forge 和 GitHub 配合使用以進行原始程式碼控制的基礎知識。完成後,您將能夠建立和配置任意數量的伺服器。
如果您使用清單中的其他服務供應商,您可以跳過此步驟,稍後在我們配置完 AWS 和 Laravel Forge 後聯絡我們。
要設定 Forge 和 AWS,您需要遵循下列步驟。
登入 Laravel Forge 並選擇 AWS 作為服務提供者。系統會要求您提供存取密鑰 ID(密鑰)和秘密存取密鑰(秘密)。您需要建立一個特定的 IAM 用戶,該用戶的策略可以提供對 Laravel Forge 的足夠存取權。 IAM 是 Amazon 在每個使用者上對應權限的方式,以便在出現任何問題時您可以撤銷存取權限。
登入 AWS 主控台並建立新的 IAM 使用者。
為使用者提供一個有意義的名稱,並選取程式存取複選框。
為 laravel-forge IAM 使用者設定正確的權限。建立新的使用者群組,因為使用者群組非常適合管理權限。現在自然的問題是,「forge 使用者應該有權存取哪些策略?」儘管您可以為其提供 AdministratorAccess,但您不應該這樣做。
如果您需要 Forge 代表您建立和設定伺服器,則需要新增兩個策略:
確認 IAM 帳戶,在下一頁上,您將找到存取金鑰和密碼。
前往 Laravel Forge 頁面並將它們貼到那裡。就是這樣。
如果您還沒有將您的 GitHub/Bitbucket 帳戶連接到 Forge,請執行此操作。當您建立伺服器時,Forge 會將公鑰新增至您的帳戶。如果您需要新增新的服務提供者和/或更新原始碼管理,您可以在個人資料中找到這些選項。
前往建立伺服器頁面新增伺服器。
如果您使用的是 AWS 免費套餐,請選擇具有 1GB RAM 的 t2.micro。至於其他設置,我將使用預設值。其中包括資料庫 MySQL 和 PHP 7.2 版。您可以稍後自訂資料庫名稱。為了簡單起見,我決定不使用負載平衡器。如果您想知道後製的秘訣,我已經在本教程的末尾介紹了這一點。
建立伺服器最多可能需要五分鐘。您將獲得 sudo 存取權限的憑證。將它們存放在安全的地方,以便您將來可以使用它們。要查看事情是否按預期工作,請轉到伺服器的 IP 位址,您應該在螢幕上看到 phpinfo()
的輸出。
建立伺服器後看到的介面是伺服器管理儀表板。
您可以在這裡執行很多操作,例如:
其中捆綁了許多功能。我已經在本教程中介紹了重要的內容。讓我們從網站管理開始。根據 Forge 文件:
網站代表伺服器上的每個「網域」。每個新配置的伺服器都包含「預設」網站;但是,當您準備好啟動生產網站時,您應該刪除它並使用有效網域建立一個新網站。 块引用>如您所見,Forge 已經為我們設定了預設網站。您可以建立任意數量的網站並將它們路由到您的子網域。出於本教程的目的,我將堅持使用預設網站。預設情況下,Web 目錄設定為
/public
。這就是 Laravel 和大多數其他 Web 應用程式的配置方式。如果您點擊特定站點,您將看到站點管理介面。您可以從此處管理、部署和配置各個站點。
網站管理介面
這是介面最初的樣子。
您可以從 Git 儲存庫安裝或安裝 WordPress。出於本教程的目的,我創建了一個示例聯繫我們應用程序,您可以將其分叉到您的帳戶中。您可以指定項目和分支的名稱。完成後,您應該可以控制部署應用程式。
我將帶您快速瀏覽可用的選項。
立即部署與快速部署
#要進行部署,您可以使用立即部署按鈕手動部署。或者,您可以啟用快速部署選項,當您將程式碼推送到所選 GitHub 儲存庫的 master 分支時,該選項會自動部署專案。
部署腳本
預設部署腳本從儲存庫中提取程式碼,安裝依賴項,啟動伺服器,並在每次部署應用程式時執行遷移。這是實際的部署腳本。
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登入後複製如果您需要調整它並添加額外的東西,您可以。
部署觸發器 URL
#您可以使用它將您的應用程式整合到第三方服務中或建立自訂部署腳本。當 URL 收到請求時,就會觸發部署腳本。
更新儲存庫和分支
#如果您需要更新分支或在不同的儲存庫上安裝相同專案的較新版本,則可以使用這些選項。如果您要更新分支,則可能還需要更新部署腳本中的分支名稱。
環境
Forge 會自動為應用程式產生環境檔案。一些詳細資訊(例如資料庫憑證)會自動添加到環境中。但是,如果應用程式使用 API,您可以將 API 金鑰安全地放置在環境中。即使您執行的是通用 PHP Web 應用程序,您也可以使用
getenv()
方法存取 ENV 變數。佇列工作人員
在 Forge 中啟動佇列工作程序與執行
queue:work
Artisan 指令相同。 Forge 使用稱為 Supervisor 的進程監視器來管理佇列工作人員,以便進程保持永久運作。您可以根據佇列優先權或您認為有用的任何其他分類建立多個佇列。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 应用程序的经验可以分享?让我们在评论中知道。
以上是使用Laravel Forge部署PHP Web應用程式的詳細內容。更多資訊請關注PHP中文網其他相關文章!