簡體   English   中英

在AWS Elastic Beanstalk上運行的Symfony 4

[英]Symfony 4 running on AWS Elastic Beanstalk

我最近在Symfony 4中完成了一個API,我想在AWS的Elastic Beanstalk上部署它以進行生產測試。 但是,除了能夠在index.php Symfony默認頁面中訪問默認的Symfony 4問候語

我無法路由到任何其他邏輯。 例如,當嘗試使用/ note / view時,本地環境注釋/視圖適用於本地

我在EB環境中遇到“未定義的索引/注釋/視圖不存在”。 幾乎像我的routes.yaml沒有加載。

任何建議將不勝感激! 提前致謝!

確保您的public目錄中有.htaccess文件(至少在您的EC2實例上 - EB創建的那個 - )

你的本地可能不需要它(比如nginx)但是,EB PHP帶有開箱即用的apache。 您需要確保您的代碼也適用於apache。

只是為了測試這個理論,訪問由EB創建的EC2實例(如果你不知道如何,請參見下文);

  • cd /var/app/current/public

  • ~ nano .htaccess

  • 將下面的內容粘貼到文件中;

`

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /index.php/
    </IfModule>
</IfModule>

請注意,這只是apache測試該理論的基本重寫。 您可以根據項目的需要為此文件添加更多內容。

  • 重啟apache; sudo service httpd restart
  • 測試一下!

或者替代cd /var/app/current/public ,你可以做cd /var/www/html/public因為它是/var/app/current/public符號鏈接

如何訪問EB生成的EC2實例

  • 轉到AWS控制台 - > Elastic Beanstalk - >您的應用程序 - >您的環境
  • 進入環境儀表板后,單擊左側的“配置”
  • 找到“安全”框,然后單擊“修改”。
  • 在“虛擬機權限”下,選擇“EC2密鑰對”並保存。
  • 轉到EC2 - > Instances並找到您的EC2實例的公共DNS(IPv4)並使用它來訪問您的EC2密鑰對(pem文件)

您需要一段時間才能登錄。

PS當然,EBS背后的主要思想之一就是你不需要SSH進入你的實例。 然而,這只是為了測試理論,有時候使用AWS,你需要采用跟蹤和錯誤的方式。 我不知道這個應用程序的設置,也不知道EBS及其工作流程的整個設置。 如果這將解決您的問題,您只需將.htaccess包含在您的項目中就可以了。

暫無
暫無

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

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