文档:ModDbiVhost¶
模块: mod_dbi_vhost
描述¶
注意: 从 lighttpd 1.4.46 起被 mod_vhostdb 取代
mod_dbi_vhost 是 mod_mysql_vhost 的一个修改版本,它转而使用 libDBI 来读取虚拟主机到文档根的关联。
安装¶
此模块是第三方模块,不包含在官方发行版中。您可以从此处下载补丁
- 适用于 lighttpd 1.4.28 到 1.4.31: http://fortfire.ca/~doneill/lighttpd-1.4.28-dbi.patch
应用后,运行 autogen.sh 并传递选项 --with-dbi
让 GNU 工具找到它,或者使用 --with-dbi=/path/to/dbi
来指定位置。
选项¶
vhost.dbi => ( "dbname" => "..." ) - 必需
用于网络数据库连接的数据库名称,或用于本地数据库实现(Sqlite)的数据库文件名。
vhost.dbi => ( "dbtype" => "..." ) - 必需
将其设置为您的数据库类型。这通常包含在 DBD 文件名中。例如,libdbdmysql.so 是 "mysql",libdbdpgsql.so 是 "pgsql"。
一些选项包括: mysql, pgsql, sqlite3, freetds, sqlite
vhost.dbi => ( "sql" => "..." ) - 必需
用于获取虚拟主机文档根的实际查询。例如,用 '?' 替换主机名
vhost.dbi += ( "sql" => "SELECT docroot FROM vhosts WHERE host='?'" )
通用选项¶
vhost.dbi += ( "user" => "..." ) - 可选
用于打开典型基于网络的数据库连接的用户名。
vhost.dbi += ( "pass" => "..." ) - 可选
用于对数据库连接进行身份验证的密码。
vhost.dbi += ( "hostname" => "..." ) - 可选
用于建立数据库连接的主机名。
vhost.dbi += ( "port" => i ) - 可选
用于对数据库连接进行身份验证的端口号。如果未指定,将使用指定数据库类型的默认端口。
MySQL 特有选项¶
vhost.dbi += ( "encoding" => "..." ) - 可选
例如,“UTF-8
”。此参数的兼容性和可用选项取决于驱动程序。我用它来告诉 MySQL DBD 使用 UTF-8。
Sqlite3 特有选项¶
vhost.dbi += ( "sqlite3_dbdir" => "..." ) - 必需
数据库文件(在“dbname”中指定)在文件系统上的目录。
示例¶
# Sqlite3 vhost.dbi += ( "dbtype" => "sqlite3", "dbname" => "lighttpd.db", "sqlite3_dbdir" => "/etc/lighttpd", "encoding" => "UTF-8", "sql" => "SELECT docroot FROM vhosts WHERE host='?'" ) # PostgreSQL vhost.dbi += ( "dbtype" => "pgsql", "dbname" => "lighttpd", "user" => "postgres", "hostname" => "localhost", "encoding" => "UTF-8", "sql" => "SELECT docroot FROM vhosts WHERE host='?'" ) # MySQL vhost.dbi += ( "dbtype" => "mysql", "dbname" => "lighttpd", "user" => "root", "password" => "somepassword", "hostname" => "localhost", "encoding" => "UTF-8", "sql" => "SELECT docroot FROM vhosts WHERE host='?'" ) server.modules += ( "mod_dbi_vhost" )