Как развернуть Symfony2 на общем хостинге?
Я хочу получить доступ к моему приложению symfony в production env (http://www.sample.com/amateur1/web/app.php) из этого url http://www.sample.com/amateur1.
для этого я переехал .htacces файл вhttp://www.sample.com/amateur1/.htaccess с этим содержанием:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
но когда я приезжаю в http://www.sample.com/amateur1 показывает сообщение об ошибке 404, и prod.log не написано.
I также используется RewriteBase /amateur1/web/
потому что я не знаю, если RewriteBase путь относительно DocumentRoot сервера, или из Пути, где .реврайт есть. Также пробовал /amateur1
и /amateur1/
как переписать базу из-за этого ответа Symfony2: как развернуть в подкаталоге (Apache)
С тремя попытками страница исключений отображается без изменений и не загружает изображение. Но затем я получаю следующую ошибку в подгонять.файл журнала:
[2013-02-15 02:06:47] request.ERROR: SymfonyComponentHttpKernelExceptionNotFoundHttpException: No route found for "GET /amateur1/" (uncaught exception) at /home/u105859802/public_html/amateur1/app/cache/prod/classes.php line 5121 [] []
что я делаю не так ?
2 ответов
в вашей конфигурации apache использует public_html
как корень документа
если Symfony2 установлен в каталоге /home/u105859802/public_html/amateur1
, общий каталог Symfony для обслуживания -/home/u105859802/public_html/amateur1/web/
вы должны использовать
RewriteBase /amateur1/web/
но будьте осторожны, это не безопасно
вы должны защитить свои каталоги symfony! (настройка доступна)
почему бы вам не попробовать переместить файлы symfony в свою личную область ?
Вы можете переименуйте веб-каталог Symfony в public_html
посмотреть как это сделать в документации cookbook
Итак, моя структура рекомендаций выглядит следующим образом:
- /главная/u105859802/
- продавец
- src
- app
- bin
- public_html (web по умолчанию в symfony2)
в большинстве общих хостингов вы не можете переопределить настройки Apache, в этом случае может потребоваться ввести правило перенаправления .htaccess файл
Options +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC]
RewriteRule !^projectName/ /projectName/web/app.php/%{REQUEST_URI} [L,NC]
это правило, которое я использовал в своем проекте . Вам может потребоваться предоставить полные пути к вашим активам другими способами, которыми они не будут загружены .