Symfony 2 на виртуальных хостах

У меня проблема с Symfony 2. Я хочу иметь виртуальный хост на ПК с Windows Vista, чтобы я мог получить доступ к моему приложению Symfony, как это myapp.local.com. Что я пробовал:

  • Я добавил эти строки в файл hosts

    127.0.0.1 local.com    
    127.0.0.1 myapp.local.com
    
  • Их я добавил в apache httpd-vhosts.conf

    < VirtualHost myapp.local.com:80 >
       DocumentRoot "d:/data/www/myapp/web"
       ServerName myapp.local.com
       Alias /sf /$sf_symfony_data_dir/web/sf
    < Directory "/$sf_symfony_data_dir/web/sf" >
       AllowOverride All
       Allow from All
    < /Directory >
    < Directory "d:/data/www/myapp/web" >
       AllowOverride All
       Allow from All
    < /Directory >
    < /VirtualHost >
    

но когда я пишу myapp.local.com в своем браузере, он выводит индекс моего каталога www. Что я делаю не так?


person ArVan    schedule 22.01.2012    source источник


Ответы (2)


Вы используете конфигурацию виртуального хоста, предложенную для Symfony 1.

Мой виртуальный хост для Symfony2 под linux выглядит так:

<VirtualHost *:80>
    ServerName www.domain.com.localhost
    ServerAlias domain.com.localhost
    ServerAdmin webmaster@localhost

    DocumentRoot /home/user/www/project/web
    <Directory /home/user/www/project/web/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /app.php [QSA,L]
        </IfModule>
    </Directory>
</VirtualHost>

Попробуйте это (адаптировано к вашей конфигурации в Windows), перезапустите Apache и попробуйте снова получить доступ к URL-адресу.

Вы найдете больше информации о виртуальных хостах Symfony2 в этой записи кулинарной книги.

person Nanocom    schedule 22.01.2012
comment
Хорошо, забыл '/' в строке Directory /home/user/www/project/web/>. Теперь я получаю индекс папки web/. Думаю, нужно что-то изменить, чтобы ссылаться на app.php. - person ArVan; 22.01.2012
comment
Вам необходимо установить модуль apache mod_rewrite - person Nanocom; 22.01.2012
comment
Или добавьте строку DirectoryIndex app.php - person Nanocom; 22.01.2012
comment
Спасибо @Nanocom, этого модуля действительно не хватало :) - person ArVan; 22.01.2012
comment
Symfony 1.x явно изложил конфигурацию vhost в каждой демонстрации/руководстве.... какого черта в документации по symfony2 повсеместно отсутствует все, что связано с vhost? Я что-то упускаю? - person herringtown; 17.03.2013
comment
@herringtown и как насчет этого Предпочтительный (и самый простой) способ начать использовать Symfony2 — это использовать встроенный в php веб-сервер и команду php ./app/console server:run. Если вы хотите использовать веб-сервер, вы, вероятно, знаете, как его настроить, а если нет, вам следует обратиться к документации веб-сервера. - person 1ed; 18.06.2013
comment
Не забудьте зайти в app_dev.php - person Szenis; 08.06.2015
comment
Работает с Symfony 4, просто измените app.php на index.php - person Benj; 29.06.2019

Версия для Windows для symfony 3.4:
Просто так:

C:\xampp\apache\conf\extra\httpd-vhosts.conf

<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs/symfony_CRUD/web"
  DirectoryIndex app_dev.php
  ServerName fudu.symfony.net
</VirtualHost>

C:\Windows\System32\драйверы\и т.д.

127.0.0.1 fudu.symfony.net

Тогда вы идете fudu.symfony.net/app_dev.php
Надеюсь, это кому-нибудь поможет :)

person fudu    schedule 19.10.2018