无法从mod_lua连接到postgresql

时间:2013-03-04 18:02:07

标签: apache postgresql lua mod-lua

我已经下载并安装了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

没有任何错误消息。我错过了进一步的配置吗?

感谢您的任何意见!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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