Ошибка «Сервер не найден» при использовании sfDomainRoutePlugin с Symfony

#apache #symfony1 #symfony-1.4

#apache #symfony1 #symfony-1.4

Вопрос:

Я пытаюсь создать сайт с поддоменами, используя плагин sfDomainRoutePlugin. Я использую версию SF 1.4.12 в Linux с Apache в качестве веб-сервера.

Я следую онлайн-инструкциям и создал следующий файл маршрутизации:

 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>
  

URL-адреса сгенерированы правильно (т. Е. с поддоменами, указанными в маршрутизации.yml-файл), однако, когда я нажимаю на ссылку «блог» или «zzzrbyte», я получаю сообщение об ошибке: «Сервер не найден»

Например, я получил это сообщение:

Сервер не найден Firefox не может найти сервер по адресу blog.portal.localhost.

AFAICT, я точно следую онлайн-инструкциям, поэтому не вижу, где я ошибаюсь. Кто-нибудь может определить, что может быть причиной этой проблемы ?.

[[ОБНОВЛЕНИЕ]]

Я только что понял, что, добавив поддомен в мой файл hosts, это, похоже, устраняет проблему. Я не уверен, является ли это исправлением или просто временным обходным путем. Если это так, то интересно, почему такая важная информация была исключена из заметок?

Если это способ заставить вещи работать, это означает, что поддомены должны быть известны заранее (т. Е. Не Генерироваться динамически и разрешаться во время выполнения), также — я не уверен, как такое решение работает для удаленного сервера, поскольку я запускаю несколько веб-сайтов (как виртуальные серверы) на одной физической машине, и я не использую файл hosts на сервере.

Любая помощь будет высоко оценена.

Ответ №1:

Добавление поддомена к хостам — правильный способ решить эту проблему