【问题标题】:After seting up a symfony project and changing hosts file, the non-symfony projects aren't working anymore on apache?设置 symfony 项目并更改主机文件后,非 symfony 项目不再在 apache 上运行?
【发布时间】:2011-10-30 06:41:10
【问题描述】:

我正在使用 xampp。

我在 symfony 中建立了一个项目并将其添加到 apaches httpd.conf:

<VirtualHost 127.0.0.1:80>
  ServerName www.plusoneboosters.com.localhost
  DocumentRoot "C:\my_xampp\xampp\htdocs\plusoneboosters\web"
  DirectoryIndex index.php
  <Directory "C:\my_xampp\xampp\htdocs\plusoneboosters\web">
    AllowOverride All
    Allow from All
  </Directory>
  Alias /sf "C:\my_xampp\xampp\htdocs\plusoneboosters\lib\vendor\symfony\data\web\sf"
  <Directory "C:\my_xampp\xampp\htdocs\plusoneboosters\lib\vendor\symfony\data\web\sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

我还将它添加到主机文件(Windows):

127.0.0.1 www.plusoneboosters.com.localhost

这个项目可以工作,但是所有没有安装 symfony 的项目都不再工作了 - 运行 localhost/project/index.php 将重定向到 symfony 项目。

我怀疑这是因为 htaccess,但不知道要替换什么才能使其正常工作。

我也尝试添加另一个虚拟主机,没有成功。

我该如何解决这个问题?

编辑:我想我找到了解决方案。

我在 httpd.conf 中添加了另一个具有不同 IP 的虚拟主机:127.0.0.2,它现在似乎工作正常。我不确定这是否是正确的方法......

【问题讨论】:

  • 我上班时会看看,因为我已经让它在 Xampp 上运行良好。您的 xampp apache 配置目录中是否有“额外”目录,其中包含“httpd-vhosts.conf”文件?因为那是我添加我的地方,据我记得,可能是在取消注释默认条目之后。也许将它添加到 httpd.conf 文件中会造成混淆?

标签: apache symfony1 dns


【解决方案1】:

当您开始使用虚拟主机时,您需要定义至少两个以保持旧配置正常工作,否则您的 symphony 虚拟主机将成为默认虚拟主机并拦截所有请求。因此,在 symphony 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 检查虚拟主机配置和优先级,它会为您提供所有已定义虚拟主机的报告

Apache virtual host examples

【讨论】:

  • 第二个虚拟主机(用于 symfony 项目)必须有不同的 IP,对吧?因为当我保持不变时,它就不起作用了。
  • @Tool: 它可以在同一个 IP 上(我所有的虚拟主机都在 ::1 上)。
  • @Tool 您应该定义 NameVirtualHost apache 指令以使用相同的 ip。我更新了我的答案以反映它并提供了指向 apache 配置示例的链接。
【解决方案2】:

我在 Xampp 中的 Symfony 设置是:

  • 在主机文件中为我的项目添加条目(例如127.0.0.1 www.jobeet.com.localhost

  • 确保 conf/extra/httpd-vhosts.conf 包含在 httpd.conf 中(我相信默认情况下:)

# 虚拟主机 包括“conf/extra/httpd-vhosts.conf”
  • 在 conf/extra/httpd-vhosts.conf 中,添加(取消注释和编辑)默认主机的条目:
服务器名称本地主机 DocumentRoot "C:/Matt/xampp/htdocs/" 错误日志“logs/localhost-error.log” CustomLog "logs/localhost-access.log" 结合
  • 然后,在其下方添加 Symfony 项目的条目:
服务器名称 www.jobeet.com.localhost DocumentRoot "C:/Matt/xampp/htdocs/jobeet/web" DirectoryIndex index.php 允许覆盖所有 全部允许 别名 /sf "C:/Matt/xampp/htdocs/jobeet/lib/vendor/symfony/data/web/sf" 允许覆盖所有 全部允许

请注意,我没有在 httpd.conf 文件本身中添加任何 VirtualHost 条目。使用最新的 Xampp,此设置对我来说很好,我可以同时访问 http://localhost/test.htmlhttp://www.jobeet.com.localhost

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 2022-10-09
    • 1970-01-01
    • 2018-08-17
    • 2019-05-23
    • 1970-01-01
    • 2018-02-02
    相关资源
    最近更新 更多