Я пытаюсь настроить модуль mod_lua для Apache, но столкнулся с трудностями при доступе к сторонним модулям Lua.Скажем, у меня есть hello_world.lua в папке Apache htdocs, который имеет что-то вроде этого:
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 проверяет на наличие модулей.находятся не в этой папке, вместо этого они находятся в каталоге c: \ program files \ lua \ 5.1 \ clibs \, на который я указал переменную среды LUA_CPATH.
Luasocket и cgilua присутствуют в этой папкеТем не менее они вызывают ошибку, когда я пытаюсь потребовать их в моем сценарии.
Из того, что я могу гКроме того, он отлично работает с любыми чистыми модулями lua, но все, что имеет c-модули (сокет и т. д.), вызывает проблемы.
Дополнительная информация:
Что необходимо сделать, чтобы иметь возможность требовать модули в скриптах, запускаемых mod_lua?