如何以简单,无痛的方式提供lua页面/脚本?

时间:2011-12-19 18:53:48

标签: http web-applications lua cgi

我从现在开始就为所有类型的脚本充分利用Lua编程语言,我想继续使用它(这是我的六种语言或其他东西)。但我找不到一个解决方案来制作非常简单的lua web应用程序,这非常令人沮丧。

我已经尝试过WSAPI,Orbit,mongrel2和tir尝试制作一个简单,直接的系统来提供一些非常简单的lua CGI,但是我失败了,它总是在一个有很多依赖性的系统中,而不是可移植的,并且穿插在很多文件和目录和子目录中...我甚至试图修改nanoki,同样的结果。当然我学到了一些东西,但我和我开始时的情况一样。 Lua似乎在网络开发领域并不友好。

在django或web2py或php中,我可以在三分钟内制作简单的应用程序。但是我会用几十个文件来填充一个简单的脚本/功能。或者我必须使用一种我讨厌的语言(php)。

我需要一些不会让我感觉不舒服的东西,类似于web.py或cherrypy或者ruby的粉末,但是在lua。

我编译了haserl,但我不知道如何使用它,因为它缺少文档(遗憾的是在lua世界中常见的问题)。 mod_lua / apache,可能不错,但我没有在所有互联网上找到一个页面,但有一些示例用法。对于lighttpd中的mod_magnet和nginx + lua。

也是如此

我开始感到沮丧。我不需要数百万用户网站上的光速服务器,我需要通过局域网提供简单的动态lua内容。我认为不需要一个火箭科学家......

那么,你会怎么做?在某个地方有一个最小的,简单的网络服务器支持lua中的标准cgi?什么是即插即用的,让你和我专注于剧本的作用,而不是如何以邪​​恶的方式使简单的事情变得荒谬复杂?

PS:我的环境是linux。

4 个答案:

答案 0 :(得分:5)

你听说过 Luvit 吗?它基本上是Lua中的 NodeJS

Official Luvit Homepage

Github Repo

一个简单的脚本如下所示:

local HTTP = require("http")

HTTP.create_server("0.0.0.0", 8080, function (req, res)
  local body = "Hello world\n"
  res:write_head(200, {
    ["Content-Type"] = "text/plain",
    ["Content-Length"] = #body
  })
  res:finish(body)
end)

print("Server listening at http://localhost:8080/") 

Here是创作者的原始帖子。

答案 1 :(得分:1)

我想指出我为Lua编写的CGI库,它解决了您命名的确切问题 - 依赖项。

LunarCGI的核心只有3个文件(只需要Lunar * .lua文件),支持HTML模板(甚至是简单的文件上传,尽管它不支持二进制文件[尚!])。

试一试:https://github.com/beelzebub/lunarcgi

答案 2 :(得分:1)

试试Civetweb,它是一款小巧,强大且可嵌入的网络服务器。它可以提供lua页面甚至内置的sqlite支持,因此您可以为您的Web应用程序创建一个数据库。它还支持cgi,如您所要求的那样。可在SourceForge上找到二进制文件。

答案 3 :(得分:0)

如果编写代码是您的主要问题,Orbit还附带Lua Pages ,这似乎与使用中的php类似(因此您在html中使用内联代码)。