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)
<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>
我在 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)
<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>