2015-03-10 5 views
0

Я пытаюсь перенести свои виртуальные хосты в базу данных mysql с помощью vhost_dbd_module.Apache ServerName * wildcard не работает с vhost_dbd_module

В различных примерах, которые я нахожу в Интернете, они инструктируют меня использовать «ServerName *» в качестве шаблона в VirtualHost.

Когда я настраиваю свой VirtualHost таким образом, сервер по умолчанию возвращается к DocumentRoot по умолчанию. Он не запрашивает базу данных mysql.

<VirtualHost *:80> 
     # catch all other requests that don't get caught above 
     ServerName * 
     # fallbackDocumentRoot in case mysql server is down 
     DocumentRoot /var/html/404 

     DBDriver mysql 
     DBDParams "host=<hostname> user=<user> dbname=<dbname>" 
     DBDocRoot "SELECT documentRoot FROM virtualhosts WHERE serverName = %s" HOSTNAME 
</VirtualHost> 

Однако, когда я изменить его на это (указать ServerName к domain.tld), он работает должным образом (запрашивает базу данных для domain.tld и возвращает правильное DocumentRoot для domain.tld) ​​

<VirtualHost *:80> 
     # catch all other requests that don't get caught above 
     ServerName domain.tld 
     # fallbackDocumentRoot in case mysql server is down 
     DocumentRoot /var/html/404 

     DBDriver mysql 
     DBDParams "host=<hostname> user=<user> dbname=<dbname>" 
     DBDocRoot "SELECT documentRoot FROM virtualhosts WHERE serverName = %s" HOSTNAME 
</VirtualHost> 

Любые идеи, которые неправильно настроены?

ответ

0

После того, как вы столкнулись с чем-то еще, кажется, что ServerName * работает только в том случае, если это FIRST VirtualHost в системе.

Я переместил его сначала по порядку, с несколькими другими виртуальными хостами под ним (с более конкретным именем сервера example.tld), и оба хоста БД и статически настроенные хосты работали.

 Смежные вопросы

  • Нет связанных вопросов^_^