码迷,mamicode.com
首页 > Web开发 > 详细

Mac + nginx + lua + luasocket + cjson

时间:2016-05-11 13:29:13      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

1. Lua

// 官方网站 http://www.lua.org/ 下载源码包
//
由于配合 nginx 使用, 所以使用 5.1.X 版本
$ tar xvzf lua-5.1.5.tar.gz
$ cd lua-5.1.5
$ make
$ sudo make install // 一定要 sudo 

------- 下面是安装输出信息 ------

cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib \
/usr/local/man/man1 /usr/local/share/lua/5.1 /usr/local/lib/lua/5.1
cd src && install -p -m 0755 lua luac /usr/local/bin
cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h \
../etc/lua.hpp /usr/local/include
cd src && install -p -m 0644 liblua.a /usr/local/lib
cd doc && install -p -m 0644 lua.1 luac.1 /usr/local/man/man1

// 以上就完成了Lua的安装, 一般情况下安装过程不会报错
// 如果报错需要根据报错信息检查是否缺少环境依赖

------- 测试一下 ----
$ lua
lua > print("hello, lua")

// 退出 control + d

 

2. luaJIT

// LuaJIT是一个利用JIT编译技术把Lua脚本直接编译成机器码由CPU运行
// 官方网站 http://luajit.org/download
// 版本 2.0 为稳定版 $ tar xzvf LuaJIT-2.0.2.tar.gz $ cd LuaJIT-2.0.2 $ make $ sudo make install -------- 特别注意 --------- // 声明环境变量, 目的是编译Nginx源码时, 告诉Nginx去哪里找luajit $ export LUAJIT_LIB=/usr/local/luajit/lib $ export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0

 

3. ngx_devel_kit 和 lua-nginx-module

// 直接去 github 下载 zip文件 解压即可
$ tar xvf ngx_devel_kit-master.zip
$ tar xvf lua-nginx-module-master.zip

// 在之后编辑 nginx 源码时, 需要关联这两个文件夹

 

4. nginx

// 官方网站 http://nginx.org/download/

$ tar xvf nginx-1.9.15.tar.gz
$ cd nginx-1.9.15
$ ./configure --add-module=/绝对路径/ngx_devel_kit-master/ --add-module=/绝对路径/lua-nginx-module-master/
$ make
$ make install

 

5. ngnix 的一些操作

// 启动 nginx
$ sudo /usr/local/nginx/sbin/nginx

// 重新加载 nginx
$ sudo /usr/local/nginx/sbin/nginx -s reload

// 检查 nginx 配置文件是否有错
$ sudo /usr/local/nginx/sbin/nginx -t

// 查询 nginx 的工作进程号
$ ps -ef | grep nginx

// 强行停止, 可能会有2个进程号, 同时kill掉
$ sudo kill -9  进程号

 

6. 测试一下 web 服务是否正常

// 访问 nginx 服务
$ curl -I "http://localhost:80"

------ 正常返回以下信息 ------
HTTP/1.1 200 OK
Server: nginx/1.9.15
Date: Wed, 11 May 2016 03:46:57 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 10 May 2016 09:15:43 GMT
Connection: keep-alive
ETag: "5731a6bf-264"
Accept-Ranges: bytes

 

7.创建第一个 nginx 关联 lua 程序, /lua-version

// 配置 /usr/local/nginx/conf/nginx.conf 文件
// 以下是配置的代码片段

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        location /lua-version {
            content_by_lua                 if jit then
                    ngx.say(jit.version)
                else
                    ngx.say(_VERSION)
                end
            ;
        }

          location /user-aciton { // 导入 lua脚本 的方式
               default_type ‘text/plain‘;
               content_by_lua_file /Users/admin/Developer/workspace/lua/post_user_action.lua;
          }


}

// 访问 /lua-version
$ curl "http://localhost:80/lua-version"
-------- 返回结果 -----
LuaJIT 2.0.4

 

8. LuaSocket

// 官方网站 http://luaforge.net/projects/luasocket/

$ tar -zxvf ./luasocket-2.0.2.tar.gz
$ luasocket-2.0.2
$ make
$ make install

// 由于 LuaSocket 模块文件的存放位置不在系统模块加载路径范围内
// 因此需要修改 Lua 的环境变量 LUA_PATH 和 LUA_CPATH
// 来把 LuaSocket 的位置目录添加到系统模块的加载路径上

$ cd
$ vi .profile
$ export LUA_PATH=/usr/local/share/lua/5.1/?.lua\;?.lua
$ export LUA_CPATH=/usr/local/lib/lua/5.1/socket/?.so\;?.so

 

9. PCRE

// 在安装 LuaSocket 时, 系统可能提示无法找到 pcre 的错误
// 只要安装即可
// 官方网站 http://www.pcre.org

$ tar xvzf pcre-8.13.tar.gz
$ cd pcre-8.13
$ ./configure
$ make
$ sudo make install

 

10. cjson

// 支持UTF-8,不支持UTF-16和UTF-32。  #没有任何影响。
// 支持Lua-5.1、Lua-5.2、LuaJIT

$ tar -zvxf lua-cjson-2.1.0.tar.gz
$ make
$ sudo make install

// 将生成的cjson.so文件拷贝到/usr/local/lib/lua/5.1下
$ cp cjson.so /usr/local/lib/lua/5.1/

-------- make之前, 修改 Makefile 文件 -----
##### Build defaults #####
LUA_VERSION =       5.1
TARGET =            cjson.so
PREFIX =            /usr/local
#CFLAGS =            -g -Wall -pedantic -fno-inline
CFLAGS =            -O3 -Wall -pedantic -DNDEBUG
CJSON_CFLAGS =      -fpic
#CJSON_LDFLAGS =     -shared
CJSON_LDFLAGS =     -bundle -undefined dynamic_lookup
#LUA_INCLUDE_DIR =   $(PREFIX)/include
LUA_INCLUDE_DIR =   $(PREFIX)/include/include/luajit-2.0/
#LUA_CMODULE_DIR =   $(PREFIX)/lib/lua/$(LUA_VERSION)
LUA_CMODULE_DIR =   $(PREFIX)/lib
#LUA_MODULE_DIR =    $(PREFIX)/share/lua/$(LUA_VERSION)
LUA_MODULE_DIR =    $(PREFIX)/share/luajit-2.0.4/
LUA_BIN_DIR =       $(PREFIX)/bin

 

Mac + nginx + lua + luasocket + cjson

标签:

原文地址:http://www.cnblogs.com/guonan/p/5481296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!