Убедитесь, что у вас есть .htaccess
файл в вашем каталоге public
(по крайней мере, в вашем экземпляре EC2 - тот, который создает EB) -
Однако вашему локальному компьютеру это может не понадобиться (например, nginx),EB PHP поставляется с Apache из коробки.Вы должны убедиться, что ваш код будет работать и на Apache.
Просто чтобы проверить эту теорию, получите доступ к вашему экземпляру EC2, который создан EB (см. Ниже, если вы не знаете как);
`
<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
в свой проект, и все готово.