WAMP Apache VirtualHost 和 Symfony2 问题

WAMP Apache VirtualHost and Symfony2 issue

我在 Windows 7 上使用 WAMP。每次我尝试创建虚拟主机以使用 Symfony2 项目的 "clean" URL 时,我都会收到 404 错误。

这是我的 httpd.conf:

NameVirtualHost localhost

<VirtualHost localhost>     
    DocumentRoot "D:/Documents/wamp/"
    ServerName localhost    
</VirtualHost>

<VirtualHost my-project.local>
    ServerName my-project.local
    DocumentRoot "D:/Documents/wamp/my-project/web/"
    DirectoryIndex app.php
    <Directory "D:/Documents/wamp/my-project/web/">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

我的主机文件:

127.0.0.1       my-project.local

当我尝试访问 http://my-project.local, I get a Symfony 404 error. When I check with http://my-project.local/app.dev, I'm redirected to http://my-project.local so I also get a 404 error and finally, when I try to reach http://my-project.local/app_dev.php 时,加载了正确的页面,但绝对没有 CSS。

我也尝试用 DirectoryIndex app_dev.php 替换 DirectoryIndex app.php 但我仍然得到 404。

例如,为由 Laravel 支持的其他项目创建虚拟主机时,我没有任何问题。

如果您检查 web/.htaccess 看到您必须为 apache 启用 mod_rewrite,否则回退到 app.php / app_dev.php。因此,请检查此模块是否已加载到您的 wamp 中。

对于资产,您必须安装它们。在终端中:

cd D:/Documents/wamp/my-project/

php app/console assets:install

此命令必须将资产包硬拷贝到 web 目录,尝试使用 --symlink 符号目录

示例虚拟主机 1)

阅读更多信息:https://breinjhel.wordpress.com/2012/10/30/configuring-your-apache-web-server-vhost-for-symfony2-website/

<VirtualHost *:80>
    ServerName yourproject.com
    DocumentRoot "C:/xampp/htdocs/yourproject/web"
    DirectoryIndex app_dev.php
    <Directory "C:/xampp/htdocs/yourproject/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_dev.php [QSA,L]
        </IfModule>
    </Directory>
</VirtualHost>

示例虚拟主机 2)

阅读更多信息:Symfony 2 on virtual hosts

<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>

对于 Symfony 4:

<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com  
DocumentRoot "c:/wamp64/www/symfony4_mysite/public/index.php"
<Directory  "c:/wamp64/www/symfony4_mysite/public/index.php">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
</Directory>