我正在开始一个新项目,我正在试图弄清楚我应该使用哪些技术。这是交易,我正在编写一些将在无线路由器上运行的软件,我想提供一个网络界面。所以我很可能不得不做一些服务器端的Web开发。唯一的问题是我将部署它的设备只有16 MB的RAM(Ubiquiti Bullet)。这里有更多信息:
1。)我将使用openwrt(linux)。 2.)显然它必须是轻量级的 3.)这是一个学校项目,所以我可以使用我喜欢的任何技术。
显然PHP是显而易见的选择,但还有其他更令人兴奋的事情(我对PHP并不感到疯狂)。
提前致谢!
答案 0 :(得分:7)
OpenWRT的一些后续版本带有完全用lua(LuCi)编写的接口。你有没看过来看它是否适用?它运行在标准CGI上,由已经在OpenWRT上运行的嵌入式Web服务器调用(这意味着您不必添加另一个软件包)。
查看他们的网站luci.freifunk-halle.net,它显然是一个包含MVC的全功能网页框架,因此您可以更快地开始使用!
LuCI是用于嵌入式设备的免费Lua软件的集合。它包括几个有用的工具和库供开发人员使用,以及MVC-Webframework和Web用户界面,它是OpenWrt Kamikaze的一部分,从8.09版本开始。 LuCI项目的目标是创建和维护用户友好,稳定和可靠的用户界面和开发框架。
PHP对于路由器来说相当大,我认为它不会提供你想要的速度! Lua不是一种难以接受的硬脚本语言,它与PHP没有什么不同,Lua网站非常好,并且有documentation的负载!
答案 1 :(得分:2)
轻量级网络服务器和内置模块,或FastCGI。用C语言编写的实际Web内容。您将学会欣赏更高级别的语言,并且您可能会使用更少的RAM。
或者,找到一个不错的小型http库并将http服务器嵌入到您的Web UI中。
答案 2 :(得分:0)
我在C阵营 - 使用你能找到的最小的服务器,也可以插入你自己的API来控制路由器。使用javascript检查发送到后端的命令,尽可能多地向浏览器卸载逻辑,并保持您的设计在后端处理简单的表单/ URL处理。
此链接包含您可以查看的许多服务器的列表。一度声称只有1k行代码,这些代码很小 http://www.ibm.com/developerworks/web/library/wa-ltwebserv/
答案 3 :(得分:0)
网络服务器不是问题。无论支持CGI的轻量级httpd选项都能胜任。对于内容生成,我绝对不会在C中使用。使用LuCI框架,并设计一个良好的界面!
答案 4 :(得分:0)
考虑制作一个Webmin插件。 Webmin的:
这不是银弹,但对于它所服务的利基,它满足它100%。唯一的缺点是,具有悠久遗产的API并不完全优雅,您不会凭借它赢得任何流行语奖。