标签:
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