3

我已经下载并安装了 Apache 2.4.4(现在带有 mod_lua 模块)。像这样启用它:

--httpd.conf--

LoadModule lua_module modules/mod_lua.so
AddHandler lua-script .lua

并运行了一个简单的脚本,它可以工作。

--htdocs/hello.lua--

function handle(r)
    r.content_type = "text/html"
    r:puts("Hello Lua World!\n")
end

我现在想连接到本地 pg 数据库,但无法正常工作。

function handle(r)
    r.content_type = "text/html"
    r:puts("Hello Lua World!\n")
    local db, err = r:dbacquire("postgres", "postgres://user:secret@localhost/db0")
    if not err then
     r:puts("connected!")
    else
     r:puts("couldn't connect!")
    end
end

没有任何错误消息。我是否缺少进一步的配置?

感谢您的任何意见!

4

2 回答 2

1

Apache httpd 基于提供数据库连接的APR ;所以请确保您的 APR 安装支持您要使用的数据库层。

于 2013-03-22T12:09:19.313 回答
0

原来我的驱动程序名称和连接字符串错误。用这个替换问题中的 dbacquire 行应该可以正常工作。

db = r:dbacquire("pgsql", "hostname=localhost dbname=foo user=bar password=baz")

更好的是,通过像这样将这些嵌入到 httpd.conf

DBDriver pgsql
DBDParams "hostname=localhost dbname=foo user=bar password=baz"

您可以通过在您的 lua 脚本中执行此操作来逃脱

db = r:dbacquire()
--start using your db here
于 2013-03-22T14:05:37.083 回答