LuaSec Light

This version of LuaSec does not include LuaSocket's files.

In this tutorial we will use a custom installation directory of Lua 5.1. We assume that Lua is installed at /opt/lua-5.1, so we have the following directory structure:

/opt/lua-5.1/man/man1/lua.1
/opt/lua-5.1/man/man1/luac.1
/opt/lua-5.1/bin/lua
/opt/lua-5.1/bin/luac
/opt/lua-5.1/include/lauxlib.h
/opt/lua-5.1/include/lua.hpp
/opt/lua-5.1/include/lua.h
/opt/lua-5.1/include/lualib.h
/opt/lua-5.1/include/luaconf.h
/opt/lua-5.1/lib/liblua.a
/opt/lua-5.1/modules/lib/
/opt/lua-5.1/modules/lua/

We configure Lua to search the modules in these directories:

/opt/lua-5.1/modules/lua
/opt/lua-5.1/modules/lib

LuaSocket as Library

LuaSocket should be a library for LuaSec. You have to apply this patch in LuaSocket, or download the modified version. After to install LuaSocket in the directory structure described above, we have:

/opt/lua-5.1/man/man1/lua.1
/opt/lua-5.1/man/man1/luac.1
/opt/lua-5.1/bin/lua
/opt/lua-5.1/bin/luac
/opt/lua-5.1/lib/liblua.a
/opt/lua-5.1/include/lauxlib.h
/opt/lua-5.1/include/lua.hpp
/opt/lua-5.1/include/lua.h
/opt/lua-5.1/include/lualib.h
/opt/lua-5.1/include/luaconf.h
/opt/lua-5.1/modules/lua/ltn12.lua
/opt/lua-5.1/modules/lua/mime.lua
/opt/lua-5.1/modules/lua/socket.lua
/opt/lua-5.1/modules/lua/socket/url.lua
/opt/lua-5.1/modules/lua/socket/http.lua
/opt/lua-5.1/modules/lua/socket/tp.lua
/opt/lua-5.1/modules/lua/socket/smtp.lua
/opt/lua-5.1/modules/lua/socket/ftp.lua
/opt/lua-5.1/modules/lib/mime/core.so
/opt/lua-5.1/modules/lib/socket/core.so

Now, you should create a directory 'luasocket' in 'include' and copy all '.h' files from LuaSocket to it:

/opt/lua-5.1/include/luasocket/timeout.h
/opt/lua-5.1/include/luasocket/unix.h
/opt/lua-5.1/include/luasocket/buffer.h
/opt/lua-5.1/include/luasocket/io.h
/opt/lua-5.1/include/luasocket/socket.h
/opt/lua-5.1/include/luasocket/auxiliar.h
/opt/lua-5.1/include/luasocket/udp.h
/opt/lua-5.1/include/luasocket/options.h
/opt/lua-5.1/include/luasocket/select.h
/opt/lua-5.1/include/luasocket/usocket.h
/opt/lua-5.1/include/luasocket/inet.h
/opt/lua-5.1/include/luasocket/wsocket.h
/opt/lua-5.1/include/luasocket/mime.h
/opt/lua-5.1/include/luasocket/luasocket.h
/opt/lua-5.1/include/luasocket/tcp.h
/opt/lua-5.1/include/luasocket/except.h

After, you have to move the file 'core.so' from 'modules/lib/socket' to 'lib', renaming it to 'libluasocket.so'.

/opt/lua-5.1/lib/libluasocket.so
/opt/lua-5.1/modules/lib/socket/

In order to LuaSocket works, you need to create a link named 'core.so' in 'modules/lib/socket' that points to 'lib/luasocket.so':

/opt/lua-5.1/modules/lib/socket/core.so     ->   /opt/lua-5.1/lib/libluasocket.so

LuaSec

Download the "light" version of LuaSec, edit the Makefile to point to /opt/lua-5.1, compile and install it.

Well, have fun...