搭建nginx环境
###安装测试目录:/data/nginx
###luajit的安装和配置
#git clone http://luajit.org/git/luajit-2.0.git
#make && make install
###nginx的安装和配置
http://nginx.org/en/download.html下载安装包
#tar zxvf nginx-1.4.1.tar.gz
下载第三方模块
lua-nginx-module
git clone https:///chaoslawful/lua-nginx-module.git
echo-nginx-module
git clone https:///agentzh/echo-nginx-module.git
ngx_devel_kit
git clone https:///simpl/ngx_devel_kit.git
#tar xzvf pcre-8.33.tar.gz ==>不需要安装
#./configure
#make && make install
#tar xzvf zlib-1.2.8.tar.gz ==>不需要安装
#./configure
#make && make install
#tar xzvf openssl-1.0.1e.tar.gz ==>不需要安装
#./configure
#make && make install
must install FastDFS first!
#./configure --prefix=/data/nginx \
--add-module=../nginx-module/lua-nginx-module \
--add-module=../nginx-module/ngx_devel_kit \
--with-pcre=../pcre-8.33 \
--with-zlib=../zlib-1.2.8
#make && make install
# ./sbin/nginx
./sbin/nginx: error while loading shared libraries: .2: cannot open shared object file: No such file or directory
# ldd ../sbin/nginx
.2 => not found
#whereis .2
: /usr/local/lib/ /usr/local/lib/.2
因为安装在缺省路径,所以LuaJIT对应的lib,include均在/usr/local目录里,但nginx默认查找/usr/lib和/usr/include/lib,做以下操作即可
#ln -s /usr/local/lib/.2 /usr/lib/.2
#ln -s /usr/local/lib/.2.0.2 /usr/lib/.2.0.2
#ldconfig
#ldd ./sbin/nginx
#./sbin/nginx
替换掉./conf/nginx.conf文件
#./sbin/nginx -s reload
如果还是报require找不到文件***.lua,请在***.lua所在的工作目录下启动nginx
==>开发中根据需求还要安装:
安装luaSocket
安装LuaSocket前需要安装lua解释器,lua5.1或lua5.2均可,这里需要说明的是这里必须自己下载源码,自己编译后安装,系统自带或下载安装包安装的均无法进行luaSocket的安装,原因是,luasocket在调用的时候是lua加载C的动态库. 这个可以从luasocket的makefile看的出来.这些完成后,下载luaSocket源码,然后make,啊。。。。。,你会发现报了很多错误,因为它还需要依赖一些库文件,
解决办法为:yum install libtermcap-devel ncurses-devel libevent-devel readline-devel
附:lua5.1源码:http://www.lua.org/ftp/
luaSocket源码:http://luaforge.net/frs/download.php/2664/luasocket-2.0.2.tar.gz
安装完成后测试一下socket包是否可用,测试方法为:lua --进去lua解释器里面-->require(“socket”) 回车后没有提示错误即为成功了
接下来重新启动一下服务器,方法就不多说了,还会报缺少luasql模块的错误,很蛋疼呦,好吧,那就一次将它们全部解决掉,去open/lib,一看,啊...,原来宝贝都在这里,make一下就万事大吉了,好吧,收住高兴的心,敲下make命令,发现没有那么简单,会报ccmake没有安装,嗯,这是个问题,先学一下yum命令,yum为centos所专有的安装命令,限于篇幅,这里只介绍两个参数 list和install,install自然是安装参数了,list是查找命令,那要是不确定要查找什么命令呢,没事,用*,假如上面就可以写成*cmake*,所以先 yum list * cmake *, 会列出相关的包,选一个你需要的,然后yum install xxxxx,至于选那个嘛,就留给聪明的你了,然后还会提示什么*uuid*没安装,方法都已经有了,再罗嗦,大家在心里该叫我唐僧了。哦,忘记了,还有一个问题:安装好这些后还会报错,根据错误提示,将group_nginx.conf中的前面部分修改为:init_worker_by_lua_file,至于为什么自己去问百度老师吧(其实我也不怎么清楚,嘿嘿!)。
然后就大胆的启动服务器吧,如果不出什么意外,就可以运行了。注:能运行的特征是没有错误。
然后开始运行自己的API,首先说一下需要将三个文件放到安装nginx目录下:group_nginx.conf cfg.lua srvip.lua, group_nginx.conf是启动nginx的启动配置文件,nginx有它的默认启动配置文件,但很显然它的那个默认的不符合咱们的要求,因此咱们需要自己搞一个,所以就需要它了。 cfg.lua里面记录你写的api的链接文件和初始化文件(注:你只需要打开你需要的或正在测试的,其他的需要注释掉,否则会报错),还有一些日志的级别等。
然后就到test文件里面测试自己的API,如果仍然报错,授人与鱼不如授人与渔嘛,这里我就说一下出错以后的解决办法:出错后首先不要害怕 恐惧,当然也不要太高兴,首先要做的的是分析问题,从哪里分析呢,从两个地方分析:一是错误提示,根据错误提示大致定位为是系统缺少模块或是代码有问题,二是根据日志,先说一下nginx的日志,nginx会打印三个日志:error日志 access日志 static_system日志(这个日志是根据cfg.lua中STATLOG = true这个参数来设置)
















