Symfony 4 работает на AWS Elastic Beanstalk - PullRequest
0 голосов
/ 09 октября 2018

Я недавно закончил API в Symfony 4 и хотел развернуть его на Elastic Beanstalk AWS для производственного тестирования.Однако, кроме возможности доступа к приветствию Symfony 4 по умолчанию в index.php Страница по умолчанию Symfony

Я не могу перенаправить на любую другую логику.Например, когда я пытаюсь использовать / note / view, который работает в локальной среде note / view / local

меня встречает «Неопределенный индекс / note / view не существует» вEB среда.Почти как мой route.yaml не загружен.

Любой совет будет с благодарностью!Заранее спасибо!

1 Ответ

0 голосов
/ 08 декабря 2018

Убедитесь, что у вас есть .htaccess файл в вашем каталоге public (по крайней мере, в вашем экземпляре EC2 - тот, который создает EB) -

Однако вашему локальному компьютеру это может не понадобиться (например, nginx),EB PHP поставляется с Apache из коробки.Вы должны убедиться, что ваш код будет работать и на Apache.

Просто чтобы проверить эту теорию, получите доступ к вашему экземпляру EC2, который создан EB (см. Ниже, если вы не знаете как);

  • 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 -> Ваше приложение -> Ваше окружение
  • После того, как в среде Dashboard нажмите «Конфигурация»"слева
  • Найдите поле" Безопасность "и нажмите" Изменить ".
  • В разделе" Разрешения виртуальной машины "выберите свою" пару ключей EC2 "и сохраните.
  • Перейдите в EC2 -> Экземпляры и найдите Public DNS вашего экземпляра EC2 (IPv4) и используйте его для доступа к вашей паре ключей EC2 (файл pem)

Потребуется некоторое время, прежде чем вы сможете войти.

PS Конечно, одна из основных идей EBS заключается в том, что вам не нужно использовать SSH в своем экземпляре.Однако это просто для проверки теории, и иногда с AWS вам необходимо придерживаться стиля trail & error.Я не знаю ни настройки этого приложения, ни всей установки с EBS и ее рабочего процесса.Если это решит вашу проблему, вы можете просто включить .htaccess в свой проект, и все готово.

...