簡體   English   中英

如何使用外部 RDS 數據庫在 AWS Elastic Beanstalk 中設置 Laravel 應用程序

[英]How to setup Laravel application in AWS Elastic Beanstalk using external RDS database

我想開始將我的 Laravel 應用程序部署到生產環境中。 為了避免在不久的將來更改 AWS 配置,我決定嘗試添加持續集成。 為此,我使用了彈性 beanstalk,並使用另一個 AWS 工具將代碼推送到那里。 所有這些都運行良好。 我在 /public/index.php 中放置了一條測試消息以輸出“hello world”,並且在轉到 URL 時它按預期工作。 當我刪除此文本並正常運行 laravel 應用程序時,我收到 500 內部服務器錯誤。 我不確定彈性 beantalk 在部署 Laravel 應用程序時所做的一切。 因此,我不確定此錯誤是否是由於數據庫連接錯誤或 Laravel 應用程序尚未完全設置所致。

我在彈性 beantalk 之外創建了一個 RDS 數據庫實例。 我可以從 sequel pro 訪問它,並添加了用於存儲所有數據的數據庫。 我將所有必要的數據庫連接值(主機、端口、數據庫、用戶名、密碼)添加到 /config/database.php 和 elastic beanstalk 服務器配置環境變量。

我已經在網上搜索了幾天的信息,但沒有找到任何特定於此的信息。 我的問題的另一部分是對在 beanstalk 中部署期間如何設置 laravel 缺乏了解。 /.ebextensions 有什么可以幫助我實現這些目標的嗎?

當我部署我的代碼時,我需要確保所有供應商文件都通過 Composer 安裝,然后我還需要確保所有數據庫遷移/更改都發生。 我想自動化盡可能多的步驟,這樣我就可以推送代碼更改,服務器將更改代碼並繼續工作。

我還想確保在設置數據庫連接時沒有遺漏任何東西。 我需要在 laravel 中設置任何其他文件或我需要配置的彈性 beantalk 中的其他文件嗎? 我保持我的數據庫對所有連接開放,然后我可以稍后收緊限制

編輯:我的數據庫可能尚未正確配置,但這似乎不是問題的根源。 我認為我的問題是知道什么腳本以及如何在部署期間運行它們。 我想確保運行 composer 和 php artisan migrate 以使所有內容保持最新。 我怎樣才能用彈性豆莖做到這一點?

這有點離題,但根據我的經驗,我不建議使用 beanstalk 來實現良好的工作流推送和部署。 我建議您使用 Forgelaravel.com 來部署您的 GitHub 存儲庫。 在 Forge Laravel 中,您將能夠從 AWS 創建一個服務器,它會自動創建數據庫連接和東西,然后只需單擊一下,您就可以部署到服務器並保持良好的工作流程。

鑒於我們說的是 Laravel 應用程序,這個 500 服務器錯誤

在此處輸入圖片說明

經常發生在創建新的基礎設施時。 為什么? 很可能會忘記將環境變量添加到 EB 環境中。

只需轉到那個EB環境配置,然后在軟件修改下至少包括以下環境屬性

  • APP_DEBUG (可以是,例如,false)
  • APP_KEY (這是使用php artisan key:generate
  • APP_NAME (蒂亞戈佩雷斯)

在此處輸入圖片說明

那么這個問題就不存在了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM