2013-03-04 53 views
3

我已經下載並安裝了Apache 2.4.4(它現在帶有mod_lua模塊)。啓用,像這樣:無法從mod_lua連接到postgresql

--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:[email protected]/db0") 
    if not err then 
    r:puts("connected!") 
    else 
    r:puts("couldn't connect!") 
    end 
end 

沒有任何錯誤信息。我錯過了進一步的配置嗎?

感謝您的任何意見!

+0

嘗試使用LuaSQL連接脫身。 – hjpotter92 2013-03-04 21:15:04

+0

知道,但我希望能使用mod_lua /阿帕奇內的新的數據庫訪問的API。 http://httpd.apache.org/docs/2.4/mod/mod_lua.html#databases – rebnoob 2013-03-04 21:48:35

+0

是的,但要檢查,如果連接處於活動狀態。另外,在'puts()'調用之後包含'db:close()'。 – hjpotter92 2013-03-04 21:52:33

回答

0

原來我拿到了驅動程序名稱和連接字符串錯誤。用這個替換問題中的dbacquire行應該使其工作。

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

更重要的是,通過像這樣

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

在httpd.conf中嵌入這些可以通過簡單地做這在你的Lua腳本

db = r:dbacquire() 
--start using your db here 
1

Apache httpd基於APR,它提供數據庫連接; 因此請確保您的APR安裝支持您要使用的數據庫層。

+0

是的,我配置我的版本以包含dbd和postgres。謝謝。 – rebnoob 2013-03-22 14:00:36