将sfDomainRoutePlugin与Symfony一起使用时出现“Server Not Found”错误

时间:2011-10-01 10:24:29

标签: apache symfony1 symfony-1.4

我正在尝试使用sfDomainRoutePlugin plugin创建包含子域的网站。我在Linux上使用SF版本1.4.12,使用Apache作为Web服务器。

我正在按照在线说明创建以下路由文件:

homepage:
  url:          /
  class:        sfDomainRoute
  param:        { module: foo, action: index }
  requirements:
    sf_host:    [portal.localhost]

#Sample route limited to one subdomain
blog:
  url:          /
  class:        sfDomainRoute
  param:        { module: foo, action: foo1 }
  requirements:
    sf_host:    blog.portal.localhost

#Sample route that will capture the subdomain name as a parameter
user_page:
  url:          /
  class:        sfDomainRoute
  param:        { module: foo, action: foo2 }

#Sample route that will not receive a subdomain and will default to www.greenanysite.com
install:
  url:          /install
  class:        sfDomainRoute
  param:        { module: foo, action: foo3 }

我的foo模块代码将方法foo1,foo2和foo3作为存根函数实现,每个方法都有自己的模板,其中只包含确认执行哪个方法的文本(例如'foo :: Foo1被调用')等。

索引方法的模板(在foo模块中)如下所示:

<html>
  <head><title>Test subdomains</title></head>
  <body>
    <ul>
        <li><?php echo link_to('homepage', '@homepage'); ?></li>
        <li><?php echo link_to('blog', '@blog'); ?></li>
        <li><?php echo link_to('zzzrbyte', '@user_page?subdomain=zzzrbyte'); ?></li>
        <li><?php echo link_to('install', '@install'); ?></li>
    </ul>
  </body>
</html>

正确生成网址(即使用routing.yml文件中指定的子网域),但是当我点击“博客”或“zzzrbyte”链接时,我收到错误消息:'找不到服务器“

例如,我收到了这条消息:

  

找不到服务器Firefox无法找到服务器   blog.portal.localhost。

AFAICT,我正在完全按照在线说明进行操作,所以我无法看到我的错误。有人能发现可能造成这个问题的原因吗?。

[[UPDATE]]

我刚刚意识到通过将子域添加到我的hosts文件,这似乎摆脱了问题。我不确定这是修复还是仅仅是一个临时的解决方法。如果这是做事的方式,我想知道为什么这些重要的信息被排除在笔记之外?

如果这是让事情发挥作用的方式,那就意味着必须事先知道子域(即不是动态生成并在运行时解决),而且 - 我不确定这样的解决方案是如何工作的远程服务器,因为我在一台物理机器上运行多个网站(作为虚拟服务器),而我没有在服务器上使用主机文件。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

将子域添加到主机是解决此问题的正确方法