与Symfony一起使用sfDomainRoutePlugin时出现'Server Not Found'错误

问题描述:

我正在尝试使用sfDomainRoutePlugin plugin创建一个包含子域的站点。我在Linux上使用SF版本1.4.12,使用Apache作为Web服务器。与Symfony一起使用sfDomainRoutePlugin时出现'Server Not Found'错误

我下面的在线说明,并已创建以下路由文件:

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作为存根功能实现,各自有各自的模板简单地包含文本确认其执行方法(例如“富:: Foo1被称为”)等

index方法的模板(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,我完全按照在线指示,所以我不能看到我的错在哪里。任何人都可以发现可能导致这个问题的原因吗?

[更新]]

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

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

任何帮助将不胜感激。

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