我正在尝试使用 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 并返回正确的 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>
任何想法什么是错误配置?