我用的是xampp。
我已经在symfony中建立了一个项目,并将其添加到apache httpd.conf:
<VirtualHost 127.0.0.1:80>
ServerName www.plusoneboosters.com.localhost
DocumentRoot "C:my_xamppxampphtdocsplusoneboostersweb"
DirectoryIndex index.php
<Directory "C:my_xamppxampphtdocsplusoneboostersweb">
AllowOverride All
Allow from All
</Directory>
Alias /sf "C:my_xamppxampphtdocsplusoneboosterslibvendorsymfonydatawebsf"
<Directory "C:my_xamppxampphtdocsplusoneboosterslibvendorsymfonydatawebsf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
我还将此添加到hosts文件(Windows):
127.0.0.1 www.plusoneboosters.com.localhost
这个项目可以工作,但是所有没有安装symfony的项目都不能工作了-运行localhost/project/index.php将重定向到symfony项目。
我怀疑这是因为htaccess,但不知道要替换什么才能使它工作。
我还尝试添加另一个虚拟主机,但没有成功。
我该如何解决这个问题?
编辑:我想我找到解决办法了。我在httpd.conf中添加了另一个虚拟主机,具有不同的IP: 127.0.0.2,现在看起来工作正常。
当您开始使用虚拟主机时,您需要定义至少两个虚拟主机以保持您的旧配置正常工作,否则您的symphony vhost将成为默认的vhost并拦截所有请求。因此,在apache配置中添加以下行
# this allows vhost based on hostname and NOT on ip only
NameVirtualHost *
<VirtualHost _default_>
ServerName localhost
DocumentRoot "your old document root"
DirectoryIndex index.php
<Directory "your old root document root">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
<VirtualHost *>
ServerName www.plusoneboosters.com.localhost
...
</VirtualHost>
如果你有apache命令行工具,你可以用apachectl -S
检查vhost配置和优先级,它会给你一个所有定义的虚拟主机的报告
Apache虚拟主机示例
我在Symfony中的Xampp设置是:
-
在hosts文件中为我的项目添加条目(例如
127.0.0.1 www.jobeet.com.localhost
) -
确保httpd.conf中包含conf/extra/httpd-vhosts.conf(我相信它是默认的:)
- 在conf/extra/httpd-vhosts.conf中添加(取消注释&编辑)默认主机的条目:
- 然后,在下面添加Symfony项目的条目:
注意,我没有在httpd.conf文件中添加任何VirtualHost条目。这个设置对我来说在最新的Xampp上工作得很好,我可以访问http://localhost/test.html
和http://www.jobeet.com.localhost
。