【发布时间】:2015-05-12 12:02:19
【问题描述】:
我正在尝试使用 vhost_dbd_module 将我的虚拟主机迁移到 mysql 数据库。
在我在网上找到的各种示例中,它们指示我在 VirtualHost 中使用“ServerName *”作为通配符。
当我以这种方式配置我的 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 并为 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>
知道什么是错误配置吗?
【问题讨论】:
标签: apache vhosts virtual-hosts dbd mod-vhost-alias