mac下Nginx+lua模块编译安装
Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘。
nginx_lua_module是由淘宝的工程师清无(王晓哲)和春来(章亦春)所开发的nginx第三方模块,它能将lua语言嵌入到nginx配置中,从而使用lua就极大增强了nginx的能力 http://wiki.nginx.org/HttpLuaModule
下面说说mac下Nginx如何编译集成nginx_lua_module模块
1. 下载nginx需要的模块源码
lua-nginx-module-0.10.5,LuaJIT,ngx_devel_kit-0.3.0,openssl,zlib
还有主要的nginx源码,具体下载地址就搜索一下吧,版本随时也会变化
2. 编译安装
2.1. 下载安装PCRE库
PCRE是为了重写URL的rewrite
如果本机安装了brew就比较方便了,直接 brew install PCRE 即可自动下载安装。否则请下载源码
./configure
make
make install
2.2. 下载安装zlib库
zlib是为了gzip压缩使用。Brew上好像没有,所以还是源码安装。
cd /Users/hecom/Downloads/zlib-1.2.
./configure
make
make install
2.3. 下载安装ssl库
下载源码,解压
cd /Users/hecom/Downloads/openssl-1.0.1t
./configure
make
make install
2.4. 下载安装luajit库
使用源码安装,http://luajit.org/download.html
cd /Users/hecom/Downloads/ LuaJIT-2.0.4t ./configure make
make install
lib和include的默认安装位置在/usr/local/lib和usr/local/include文件夹下面,这个很重要,需要导入环境变量使用。
2.5. 下载lua-nginx-module并解压
我的本地路径:/Users/hecom/Downloads/lua-nginx-module-0.10.5
注意版本号
2.6. 下载ngx_devel_kit并解压
我的本地路径:/Users/hecom/Downloads/ngx_devel_kit-0.3.0
注意版本号
2.7. 下载nginx并解压
我的本地路径:/Users/hecom/Downloads/nginx-1.11.1
注意版本号
2.8. 导入环境变量(很重要)
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.0/
如果nginx无法启动,报下面错误,请检测是否执行该步骤。
[error] failed to initialize Lua VM in /usr/local/nginx/conf/nginx.conf:44
2.9. 编译安装nginx
cd /Users/hecom/Downloads/nginx-1.11.1
./configure --prefix=/usr/local/nginx \ #nginx安装位置
#--with-openssl=/Users/hecom/Downloads/openssl-1.0.1t \ #openssl的源码路径,如果不是自己编译,则不需要这个参数。
--with-http_ssl_module \ #开启ssl模块
--with-http_stub_status_module \
--with-zlib=/Users/hecom/Downloads/zlib-1.2. \ #zlib源码路径
--add-module=/Users/hecom/Downloads/lua-nginx-module-0.10. \ #源码路径
--add-module=/Users/hecom/Downloads/ngx_devel_kit-0.3. #ngx_devel源码路径
make
make install
上面命令请在root命令下执行,即在前面加上sudo, 各个源码路径请根据自己的位置修改。
自己编译openssl上走了很多弯路,一直报错:ld: symbol(s) not found for architecture x86_64,编译openssl时加 ./Configure darwin64-x86_64-cc 也不行,最后没有搞定,使用系统自带的版本通过了
3. 测试nginx
如果幸运不出错的话,nginx变安装成功了。输入下面命令启动nginx并测试,sudo /usr/local/nginx/sbin/nginx,然后在浏览器中输入:http://localhost/,如果看到下面画面恭喜你,成功了!
4. 测试lua
打开/usr/local/nginx/conf/nginx.conf文件,添加lua脚本。
location /hello {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
然后执行 sudo /usr/local/nginx/sbin/nginx –s reload
在浏览器中输入 http://localhost/hello,看到输出 “hello,lua”
否则根据错误日志排查原因
mac下Nginx+lua模块编译安装的更多相关文章
- centos 下nginx源码编译安装
1.下载nginx 进入nginx官网下载nginx的稳定版本,我下载的是1.10.3. 下载:wget http://nginx.org/download/nginx-1.10.3.tar.gz 解 ...
- luajit+nginx+上传模块+lua模块编译安装
git clone https://github.com/fdintino/nginx-upload-module.git git clone https://github.com/openresty ...
- Mac下使用源码编译安装TensorFlow CPU版本
1.安装必要的软件 1.1.安装JDK 8 (1)JDK 8 can be downloaded from Oracle's JDK Page: http://www.oracle.com/techn ...
- Linux下通过源码编译安装程序
本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...
- Linux下通过源码编译安装程序(configure/make/make install的作用,然后在/etc/profile文件里修改PATH环境变量)
一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...
- Nginx 第三方模块的安装以及一致性哈希算法的使用
Nginx 第三方模块的安装以及一致性哈希算法的使用 第三方模块安装方法总结: 以ngx_http_php_memcache_standard_balancer-master为例 1:解压 到 pat ...
- Mac下利用(xcode)安装git
Mac下利用(xcode)安装git 一.AppStore 最安全途径:搜索下载Xcode,(需要AppleID). 其他:直接百度Xcode下载. 二.Xcode 打开Xcode-->Pref ...
- CentOS下MySQL 5.7编译安装
CentOS下MySQL 5.7编译安装 文章目录 安装依赖包 下载相应源码包 添加mysql用户 预编译 编译安装 启动脚本,设置开机自启动 /etc/my.cnf,仅供参考 初始化数据库 设置 ...
- 【重要】Nginx模块Lua-Nginx-Module学习笔记(三)Nginx + Lua + Redis 已安装成功(非openresty 方式安装)
源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一. 目标 使用Redis做分布式缓存:使用lua API来访问redis缓存:使用nginx向客户端提 ...
随机推荐
- 解决KDE桌面环境下Eclipse崩溃的问题--让Eclipse使用特定的GTK2主题运行
最近在Kubuntu14.04上安装Eclipse,由于Ubuntu软件中心中的版本太老(3.8),而且会自动安装OpenJDK,于是到官网下载最新的4.4版.(Luna,代号很有亲切感有木有,女神万 ...
- linux 下搭建 storm
搭建storm 需要搭建: 1.zookeeper 搭建 2.下载/安装 storm 的依赖包 zeromq, jzmq,python 2.storm 搭建 一.Zookeeper 安装 下载安装 ...
- oracle 驱动安装备忘
ubuntu 从oracle官网下载两个必须的rpm包(这里选择的是version12.1.0.2.0, 64位操作系统) oracle-instantclient12.1-basic-12.1.0. ...
- 小甲鱼python视频第十讲(课后习题)
1.list1[0]与list1[0:1]的区别 2.分片的步长 3关于列表的copy(注意list2与list3的区别) list1 = [,,,,,,] list2 = list1[:] list ...
- 实战录 | 基于openflow协议的抓包分析
<实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全SDN工程师宋飞虎,将带来基于 ...
- __slots__ 属性绑定
s = Student() # 创建新的实例 s.name = 'Michael' # 绑定属性'name' s.age = 25 # 绑定属性'age' s.score = 99 # 绑定属性'sc ...
- Nginx + tornado + supervisor部署
参考链接:supervisor + Tornado + Nginx 使用详解, 用tornado ,Supervisord ,nginx架网站, tornado官方文档 项目文档树: . ├── ch ...
- 斯坦福第十六课:推荐系统(Recommender Systems)
16.1 问题形式化 16.2 基于内容的推荐系统 16.3 协同过滤 16.4 协同过滤算法 16.5 矢量化:低秩矩阵分解 16.6 推行工作上的细节:均值归一化 16.1 问题形式 ...
- (转)ASP.NET Mvc 2.0 - 1. Areas的创建与执行
转自:http://www.cnblogs.com/terrysun/archive/2010/04/13/1711218.html ASP.NET Mvc 2.0 - 1. Areas的创建与执行 ...
- LDO-BD00C0AWFP
BD00C0AWxx 1.该产品是ROHM公司的一款高输入电压可达26.5V,输出电压可达15V,输出电流1A的LDO.具有较低的ESR Capacitor. 2.输入电压变化4-26.5V,输出3 ...