2012-03-14 13 views
6

Apache için mod_lua modülünü kurmaya çalışıyorum ama üçüncü taraf Lua modüllerine erişim konusunda zorluklarla karşılaştım. Böyle bir şey vardır Apache htdocs klasöründe bir hello_world.lua olduğunu varsayalım: beklendiği gibi çalışacağının, "//localhost/hello_world.lua http"Üçüncü taraf Lua modüllerine erişmek için Apache'de mod_lua nasıl ayarlanır?

require "apache2" 

function handle(r) 
    r.content_type = "text/html" 
    r:write "Hello World from <strong>mod_lua</strong>." 
    return apache2.OK 
end 

Ve gitmek. Ama örneğin bir çizgi eklemeye çalışırsanız:

require "socket" 

Ya

require "cgilua" 

aşağıdaki çıktıyı almak:

Hata! beklendiği gibi bu

require "base" 

: Ancak bir nil değerini

aramaya

girişimi, bazı modüller gibi işi yapmak.

Dosya sistemindeki base.lua'ya (c: \ program files \ lua \ 5.1 \ lua \ base.lua) gider ve bu dosyayı kaldırırsam, betiğimi çalıştırmayı denerim. . Yani bu mod_lua'nın modülleri kontrol ettiği dizin olmalı. Modüller dlls bu klasörde değil, yerine onlar için ortam değişkenini LUA_CPATH kurdum c: \ program files \ lua \ 5.1 \ clibs \ 'dir.

Luasocket ve cgilua bu klasörde her ikisi de mevcut, ancak komut dosyamda bunları kullanmaya çalıştığımda bir hataya neden oluyorlar.

Toplayabildiğim kadarıyla, herhangi bir saf lua modülleriyle iyi çalışır, ancak aynı zamanda cmodüllere sahip olan herhangi bir şey (soket vb.) Sorunlara neden olur.

Ek bilgi: \ Program Files \ lua 5.1 \ lua \ \

  • LUA_CPATH = c: \ Program Files \ lua

    Mod_lua tarafından çalıştırılan komut dosyalarında modül gerektirebilmek için ne yapılmalı? Eğer (veya .htaccess, ... küresel yapılandırma dosyasında) Sitenize yapılandırmasına LuaPackageCPath ve/veya LuaPackagePath direktifleri eklemeniz gerekir gibi

  • +0

    Yani, aşağıda önerilen tavsiye ile herhangi bir şans .....? – kartben

    cevap

    3

    görünüyor.

    Senin durumunda

    , ben

    LuaPackagePath c:\program files\lua\5.1\lua\ 
    LuaPackageCPath c:\program files\lua\5.1\clibs\ 
    

    hile yapması gerektiğini varsaymak istiyorum.

    +0

    Bu benim için çalışmıyor. Lfs derledim, o zaman bir lfs.so dosyası aldım. Eğer lfs.so' ile aynı klasörde 'lfs'' gerektiren bir lua dosyası oluşturursam ve interaktif lua’yı başlatırsam veya' lua myscript.lua' çalışırsa. Ama eğer 'mod_apache' deniyorsam işe yaramıyor. Günlük dosyasındaki hata 'lua'dır: LuaPackagePath C ekledikten sonra/web/folder/i.lua' –

    +0

    işlev tanıtıcısı bulamıyor: \ Program Files (x86) \ Lua \ 5.1 \ lib LuaPackageCPath C: \ Program Dosyaları (x86) \ Lua \ 5.1 \ clibs – Jeevanantham