orbit kepler 基于lua的web开发平台从入门到进门

俗话说 工欲善其事 必先利其器

这个链接是使用Intellij IDEA 13.0.1 来写lua 

 http://note.youdao.com/share/?id=9cf7b77500457cb0db09500f8b6f5d3d&type=note

第一部分 环境安装

-前言

下面在文章是个人便研究kepler系列框架 中间遇到在各种问题 以及解决方法  从零开始 到最终把官方提供的所有例子跑通全过程 文章有些散 有时间慢慢整理

文章排版不好看,给那些在研究kepler的luaer一些参考,用了lua开发web框架,总体给我的感觉是开发调试速度提高,项目占用内存降低好多倍,处理高并发能力提高几倍,

究其原因是我们在使用相当于在用一个c语言编写的框架,加上lua本身就几百k,较之其他语言几十M,自然是便捷迅速

美中不足的一点是 lua用的人不多,没那么多像java高级语言强大功能,有点可惜,可能跟他的定位有关,不过做日常的web软件和网站绰绰有余,你要是想来个桌面软件

那真没有

-- 适应场景

  如果你的项目组核心功能遇到性能瓶颈,不妨把这个核心的东西交给lua

  如果哪个模块遭遇高并发访问,不妨试试lua web重写


-正文

1 先安装lua 这里还是不采用 apt-get install lua5.1  否则安装完成 kepler无法安装 比较麻烦 各种路径要手动设置 对于新手的我们 非常的麻烦 直接进入方式2


2 采用安装包的方式 安装lua

a 安装readline

wget  http://fossies.org/linux/misc/readline-6.3.tar.gz

##wget http://www.sfr-fresh.com/unix/misc/readline-6.1.tar.gz   这个链接废弃了 使用上面6.3版本

tar -zxvf readline-6.1.tar.gz

cd ~~ ./configure && make && make install  

 sudo ldconfig

b 安装ncurses

wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz

 tar -xvf ncurses -5.7.tar.gz

然后 cd ncurses-5.7 

./configure,make,make install


c 安装lua 

1)先去Lua的官网(http://www.lua.org/ftp/)下载最新发布包,我选择的是 lua-5.1.4.tar.gz

   2)使用命令tar -xzvf  lua-5.1.4.tar.gz

   3)cd lua-5.1.4, 然后执行make,会提示让你输入make 系统,因为我的系统是linux的,因此我输入

make linux    

make install


3 开始安装  kepler系列

a 先安装luarocks 那luarocks是个什么东西呢 他类似java的maven+nexus仓库 管理jar包的 你需要的第三方lua工具包 都要以

luarocks install json4lua  这种命令方式去下载使用 否则无法用了 

包括后面讲的 下载安装 WSAPI Xavante 等等 

http://luarocks.org/releases/

下载 具体安装也可以参考官网

luarocks-2.2.0.tar.gz
默认我们要安装在 /usr/local目录下 官网这么讲的 照做吧

cd /usr/local cp luarocks-2.2.0.tar.gz 

tar zxvf luarocks-2.2.0.tar.gz  

cd luarocks-2.2.0

./configure 
make

make install

第二部分 kepler项目搭建

4 至此我们先来安装一个kepler的web环境 跑个工程看看

    https://github.com/keplerproject 这个是kepler的很多项目地址  找个orbit项目

git clone https://github.com/keplerproject/orbit

cd orbit/samples 注意要先到这个文件夹下


运行命令: wsapi -p8090

然后在浏览器敲命令http://10.63.2.19:8090/hello/hello.lua

到这里你肯定报错,wsapi是什么命令 好吧 我们继续安装环境 因为环境根本没装完 你这命令当然找不到

更多内容参考这个英文网站http://www.keplerproject.org/ ,当然你肯定不会去看 ,都是英文 看着累 哎没办法,我搜了很多资料

发现kepler中文的资料太少,硬着头皮去看 居然能看懂 到最终把linux环境下部署成功了orbit的samples项目 话说 那速度真的太快 连眨眼都没眨眼

页面就出来了 比较相当于使用一个c语言的后端服务器 这能不快吗 这也是lua这么吸引我的原因 我java使用的很熟练 总感觉要突破点什么 lua是个不错的选择


好闲话少说,咱们来安装安装wsapi xavante和orbit

orbit是啥?就是类似struts springMvc这种框架呗 那可跟加jar包不一样 

wsapi是啥 xavante 是啥 

wsapi 那去看官网介绍吧

xavante就是tomcat nginx apache这种服务器 超级小 

luarocks install wsapi-xavante
luarocks install orbit
看到了吧 luarocks命令 就是刚刚咱们安装过的 以后很多东西都得这么安装 安装需要一点时间 下载网速慢 都是国外的地址 

好到此就算安装完毕环境 需要其他的东西 就继续研究吧

我们来运行下项目

注意一定要cd到samples文件夹下 运行wsapi或者orbit命令 系统就会自动把这个当成当前环境变量 根目录 否则是找不到lua文件的 (确实很方便 就跟tomcat的webapps一样)

cd orbit/samples 

wsapi -p8090 

访问

http://10.63.2.19:8090/hello/hello.lua


如果要结束掉wsapi  那就只能去kill进程号了 ps-ef|grep wsapi 找到进程 kill掉

wsapi -p8090 & 

加个&就可以使你的服务器关掉终端也继续运行 

当然你也可以使用orbit -p8090 hello.lua

不过发现这种方式每次改完还得重启

现在应该都出来了 试着改改hello.lua里面的函数 新加个函数 删除个函数,居然不用重启服务 立马就生效 这这脚本语言就这样任性 太好了

还有其他项目都可以试试 不过要安装其他依赖 我继续研究了 有空再补充


学一门语言和技术是简单的 但是难就难在开头,环境搭建太痛苦 比较难弄 希望能给你一点帮助



安装 mysql依赖 这过程真是遇到挫折

提示mysql.h找不到 安装 apt-get install libmysqlclient-dev

出现下面错误

Depends: xxx(< 1.2.1) but xxx is to be installed

于是执行 apt-get install libmariadbclient-dev

解决

luarocks install luasql-mysql MYSQL_INCDIR=/usr/include/mysql

终于安装成功


安装 sqlite3

apt-get install sqlite3

apt-get install libsqlite3-dev

运行时候发现下面错误

今天运行lua的时候出现了 "lua: symbol lookup error: /usr/local/lib/libreadline.so.6: undefined symbol: PC"的错误, google了一下找到了解决的办法, cd /usr/local/lib

    mkdir temp
    mv libreadline* temp/
    ldconfig

然后 sqlite3 obit/samles/blog/blog.db

就可以了

但是http://10.63.2.19:8090/blog/blog.lua/ 访问出现post表 找不到 改改源码里面的表名

vi blog.lua 

===========修改成如下

pages = blog:model "blog_post"

pages = blog:model "blog_page"

pages = blog:model "blog_comment"

=========blog_config.lua=======

database = {
 --driver = "mysql",
 --conn_data = { "blog", "root", "root123" } 
 --"blog", "root", "root123", "localhost", 3306
  driver = "sqlite3",
  conn_data = { "/home/hzhedongyu/lua/webapps/orbit/samples/blog" .. "/blog.db" }
}

================现在就可以访问了


第三部分  项目开发常见问题

1 链接mysql数据库乱码 解决方法

mapper.conn:execute"SET NAMES utf8"




你可能感兴趣的:(orbit kepler 基于lua的web开发平台从入门到进门)