Задать вопрос
@zudwamorrison

Symfony на virtualHost?

Помогите понять в чем проблема.
Была установлена Symfony 2 (как вот здесь) на локалхост (Debian, apache2, MySQL, PHP). На локалхосте крутится несколько проектов, все работает прекрасно. А вот с проектом с symfony не получается, настройки virtualHost скопированы с работающего проекта. В браузере по адресу localhost/project/web отображается структура папки ("Index of /project/web ...").
На Stackoverflow нашел такой ответ:
1)
# app/config/routing.yml
homepage:
    pattern:   /
    defaults:  { _controller: AcmeHomeBundle:home:show }

2) rename the app_dev.php to index.php and this will route to the home page automatically

Стартовая отображается, но не покидает ощущение что должно оно как-то по-другому работать...

/etc/apache2/sites-available/project
<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www/project/web
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/project/web/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride ALL
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/project.error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel debug

	CustomLog ${APACHE_LOG_DIR}/project.access.log combined
</VirtualHost>
  • Вопрос задан
  • 2580 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
silentvick
@silentvick
Переименовывать app_dev.php в index.php не нужно. Подозреваю, вы забыли положить файл .htaccess: symfony/.htaccess

Также по теме:
Symfony: Configuring a Web Server
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@zudwamorrison Автор вопроса
Спасибо за помощь, действительно проблема в .htaccess.
В итоге, правда, все записал в конфиг VirtualHost
<VirtualHost *:80>
        ServerName symfony.test
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/projecty/web

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/project/web/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride ALL
                Order allow,deny
                allow from all
                DirectoryIndex app_dev.php
                <IfModule mod_rewrite.c>
                        RewriteEngine On
                        RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
                        RewriteRule ^(.*) - [E=BASE:%1]
                        RewriteCond %{ENV:REDIRECT_STATUS} ^$
                        RewriteRule ^app_dev.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]    ##### this is the part that you should tweak, have th$
                        RewriteCond %{REQUEST_FILENAME} -f
                        RewriteRule .? - [L]
                        RewriteRule .? %{ENV:BASE}/app_dev.php [L]        ##### this is the part that you should tweak, have the .htaccess $
                </IfModule>
                <IfModule !mod_rewrite.c>
                        <IfModule mod_alias.c>
                                # When mod_rewrite is not available, we instruct a temporary redirect of
                                # the startpage to the front controller explicitly so that the website
                                # and the generated links can still be used.
                                RedirectMatch 302 ^/$ /app.php/
                                # RedirectTemp cannot be used instead
                        </IfModule>
                </IfModule>
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/project.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel debug

        CustomLog ${APACHE_LOG_DIR}/project.access.log combined
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы