Symfony 4 работает на AWS Elastic Beanstalk

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

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

Меня встречают «Неопределенный индекс / примечание / представление не существует» в среде EB. Почти как мои маршруты. Ямл не загружен.

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

3

Решение

Убедитесь, что у вас есть .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 вам нужно идти по следу & стиль ошибки. Я не знаю ни настройки этого приложения, ни всей установки с EBS и ее рабочего процесса. Если это решит вашу проблему, вы можете просто включить .htaccess в ваш проект, и вы готовы идти.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector