在设置了一个symfony项目并更改了主机文件之后,非symfony项目在apache上不再工作了?



我用的是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/额外的/httpd-vhosts.conf"之前
  • 在conf/extra/httpd-vhosts.conf中添加(取消注释&编辑)默认主机的条目:
<>之前ServerName localhost马特DocumentRoot"C://xampp/根/"ErrorLog"日志/localhost-error.log"CustomLog "logs/localhost-access.log"组合之前
  • 然后,在下面添加Symfony项目的条目:
<>之前ServerName www.jobeet.com.localhost马特DocumentRoot"C://xampp/根/jobeet/网络"DirectoryIndex index . phpAllowOverride所有允许所有人别名/sf" C:/Matt/xampp/htdocs/jobeet/lib/vendor/symfony/data/web/sf"AllowOverride所有允许所有人之前

注意,我没有在httpd.conf文件中添加任何VirtualHost条目。这个设置对我来说在最新的Xampp上工作得很好,我可以访问http://localhost/test.htmlhttp://www.jobeet.com.localhost

最新更新