我試圖爲Apache設置mod_lua模塊,但在訪問第三方Lua模塊時遇到了困難。說我有Apache的htdocs文件夾一個hello_world.lua有這樣的事情:如何在Apache中設置mod_lua來訪問第三方Lua模塊?
require "apache2"
function handle(r)
r.content_type = "text/html"
r:write "Hello World from <strong>mod_lua</strong>."
return apache2.OK
end
而且我去的「http://localhost/hello_world.lua」,預期將運作。但是,如果我嘗試添加一行如:
require "socket"
或者
require "cgilua"
我得到以下輸出:
錯誤!
試圖調用一個零值
然而,一些模塊做的工作,比如:
require "base"
,其功能如同預期。
如果我導航到文件系統中的base.lua(c:\ program files \ lua \ 5.1 \ lua \ base.lua)並刪除此文件,然後嘗試運行我的腳本,我得到了與上述相同的錯誤。所以這必須是mod_lua正在檢查模塊的目錄。模塊dll不在此文件夾中,而是位於c:\ program files \ lua \ 5.1 \ clibs \中,我將其設置爲指向的環境變量LUA_CPATH。
Luasocket和cgilua都出現在這個文件夾中,但當我嘗試在我的腳本中要求它們時,它們會導致錯誤。
從我可以收集,它可以很好地與任何純粹的lua模塊,但任何具有cmodules以及(套接字等)導致問題。
附加信息:
- 操作系統:Windows 7家庭高級版
- LUA_PATH = C:\ Program Files文件\ LUA \ 5.1 \ LUA \
- LUA_CPATH = C:\ Program Files文件\ LUA \ 5.1 \ clibs \
- Apache的版本:2.2.22
- mod_lua版本:http://www.corsix.org/content/mod-lua-win32#comment-3214
需要做些什麼才能在mod_lua運行的腳本中需要模塊?
那麼,任何運氣與建議下面的建議.....? – kartben 2012-03-22 09:08:49