CentOS 6.4下安装Nginx+MYSQL+Lua+Redis(下)

6 篇文章 0 订阅
4 篇文章 0 订阅
本文是CentOS 6.4下安装Nginx、LuaJIT、MySQL和Redis的下篇,主要介绍了LuaJIT的安装,以及Nginx第三方模块如memc、lua、drizzle模块的安装和配置。通过详细的步骤,指导读者完成整个安装过程。
摘要由CSDN通过智能技术生成

接上一篇文章:《CentOS 6.4下安装Nginx+MYSQL+Lua+Redis(上)》

5、安装LuaJIT

下载luajit,官网http://luajit.org/
    wget http://luajit.org/download/LuaJIT-2.0.1.tar.gz
    tar xzvf LuaJIT-2.0.1.tar.gz
    cd LuaJIT-2.0.1
     make PREFIX=/usr/local//LuaJIT-2.0.1
     make install PREFIX=/usr/local/LuaJIT-2.0.1


6、安装Nginx 第三方模块memc,lua,drizzle模块

ngx_lua_module 是一个nginx http模块,它把 lua 解析器内嵌到 nginx,用来解析并执行lua 语言编写的网页后台脚本。

为了避免后面配置麻烦,这里将所有可能要用的模块都一并安装、编译:

详细模块地址分别为:

·     ngx_devel_kit https://github.com/simpl/ngx_devel_kit

·     set-misc-nginx-module #874554">https://github.com/agentzh/set-misc-nginx-module

·     memc-nginx-module https://github.com/agentzh/memc-nginx-module

·     echo-nginx-module https://github.com/agentzh/echo-nginx-module

·     lua-nginx-module https://github.com/chaoslawful/lua-nginx-module

·     srcache-nginx-module https://github.com/agentzh/srcache-nginx-module

·     drizzle-nginx-module https://github.com/chaoslawful/drizzle-nginx-module

·     rds-json-nginx-module #874554">https://github.com/agentzh/rds-json-nginx-module

在编译Nginx之前需要设置一下这两个库的LIB和INCLUDE文件地址:

– lua –

export LUA_LIB=/path/to/lua/lib

export LUA_INC=/path/to/lua/include

 PS:这里的/path/to指你的LuaJIT的安装目录,所以你需要将它更改为你安装的目录,比如我我的LuaJIT安装安装在/usr/local/目录下的,所以我的配置环境如下:

– lua –

export LUA_LIB=/usr/local/luaJIT/lib

export LUA_INC=/usr/local/lua/include/luaJIT-2.0  



– drizzle –

export LIBDRIZZLE_INC=/opt/drizzle/include/libdrizzle-1.0

export LIBDRIZZLE_LIB=/opt/drizzle/lib

这个和上面一样配置。

不过值得注意的是,需要实现安装drizzle7库文件:

安装drizzle7-2011.07.21.tar.gz
wget  http://agentzh.org/misc/nginx/drizzle7-2011.07.21.tar.gz
tar zxvf drizzle7-2011.07.21.tar.gz 
cd drizzle7-2011.07.21
./configure --prefix=/usr/local/drizzle7 --without-server
make install-libdrizzle-1.0
echo  "/usr/local/drizzle7/lib/" >>/etc/ld.so.conf
ldconbfig    为了让动态链接库为系统所共享,我们这里用ldconfig


Nginx编译选项如下,请注意先后顺序:

./configure –prefix=../nginx \

    --with-pcre=../pcre \

    --add-module=../ngx_devel_kit \

    –add-module=../set-misc-nginx-module \

    –add-module=../memc-nginx-module \

    –add-module=../echo-nginx-module \

    –add-module=../lua-nginx-module \

    –add-module=../srcache-nginx-module \

    –add-module=../drizzle-nginx-module \

    –add-module=../rds-json-nginx-module

PS:需要注意的是../是指你解压的每个模块的路径。比方我解压的上面这些模块的路径为:/usr/local/extend,那么上面就应该是:

./configure –prefix=/usr/local/src/nginx-1.3.16 \      ###这里是你Nginx源文件的目录

    --with-pcre=/usr/local/pcre \                                   ###这里是安装pcre文件的目录

    --add-module=/usr/local/extend/ngx_devel_kit \     ###一下为安装的各个扩展模块的目录

   -–add-module=/usr/local/extend/set-misc-nginx-module \

    -–add-module=/usr/local/extend/memc-nginx-module \

    -–add-module=/usr/local/extend/echo-nginx-module \

    -–add-module=/usr/local/extend/lua-nginx-module \

    -–add-module=/usr/local/extend/srcache-nginx-module \

    -–add-module=/usr/local/extend/drizzle-nginx-module \

    -–add-module=/usr/local/extend/rds-json-nginx-module
如何安装nginx时遇到下面问题:
./configure: error: the ngx_drizzle addon requires the libdrizzle library.
可以这么解决:
http://openresty.org/download/drizzle7-2011.07.21.tar.gz

tar xzvf drizzle7-2011.07.21.tar.gz
cd drizzle7-2011.07.21/
./configure --without-server
make libdrizzle-1.0
make install-libdrizzle-1.0
如果下面还是报错  那么就执行:

yum install readline-devel ncurses-devel

重新编译Nginx二进制,Nginx需要quit再启动。而普通配置更新则reload即可:

1. kill -HUP `cat /path/nginx/logs/nginx.pid`   ##同样,这里的path也是你安装nginx的路径

2. /path/nginx/sbin/nginx -s reload

PS:详细的模块编译可以参考各自模块的文档说明。


启动及重新启动nginx,重启nginx后丢失nginx.pid问题解决
 
该部分来自:http://www.2cto.com/os/201308/236350.html

停止操作是通过向nginx进程发送信号来进行的
 
步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx
 
另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 '/usr/nginx/logs/nginx.pid'
 
平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:
kill -HUP 住进称号或进程号文件路径
或者使用
 
/usr/nginx/sbin/nginx -s reload
 
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
或者
 
/usr/nginx/sbin/nginx -t
 
平滑升级
如果服务器正在运行的Nginx要进行升级、添加或删除模块时,我们需 要停掉服务器并做相应修改,这样服务器就要在一段时间内停止服务,Nginx可以在不停机的情况下进行各种升级动作而不影响服务器运行。
步骤1:
如 果升级Nginx程序,先用新程序替换旧程序文件,编译安装的话新程序直接编译到Nginx安装目录中。
步 骤2:执行命令
kill -USR2 旧版程序的主进程号或进程文件名
此时旧的Nginx主进程将会把自己的进程文件改名为.oldbin,然后执行新版 Nginx。新旧Nginx会同市运行,共同处理请求。
这时要逐步停止旧版 Nginx,输入命令:
kill -WINCH 旧版主进程号
慢慢旧的工作进程就都会随着任务执行完毕而退出,新版的Nginx的工作进程会逐渐取代旧版 工作进程。
 
此 时,我们可以决定使用新版还是恢复到旧版。
不重载配置启动新/旧工作进程
kill -HUP 旧/新版主进程号
从容关闭旧/新进程
kill -QUIT 旧/新主进程号
如果此时报错,提示还有进程没有结束就用下面命令先关闭旧/新工作进程,再关闭主进程号:
kill -TERM 旧/新工作进程号
 
这样下来,如果要恢复到旧版本,只需要上面的几个步 骤都是操作新版主进程号,如果要用新版本就上面的几个步骤都操作旧版主进程号就行了。
 
上面就是Nginx的一些基本的操作,希望以后Nginx能有更好的方法来处理这些操作, 最好是Nginx的命令而不是向Nginx进程发送 系统信号。
 
 
在使用的阿里云服务器上,进程性的 nginx -s stop后再次启动nginx -s reload ,总是会报错误nginx: [error] open() "/alidata/server/nginx/logs/nginx.pid" failed (2: No such file or directory),这应该是因为把nginx进程杀死后pid丢失了,下一次再开启nginx -s reload时无法启动,重装可以解决这个问题,但是太麻烦了。
 
一开始百度解决该问题。只是找到几个求助答案。没有实际有效的方法,于是用google开始搜索,虽然英语比较恶心,但一般,英文网站上总会有解决方法这一次也不另外。
 
 issued a nginx -s stop and after that I got this error when trying to reload it.
 
[error]: invalid PID number "" in "/var/run/nginx.pid"
 
That /var/run/nginx/pid file is empty atm.
 
What do I need to do to fix it?
 
 
nginx -s reload is only used to tell a running nginx process to reload its config. After a stop, you don't have a running nginx process to send a signal to. Just run nginx (possibly with a -c /path/to/config/file)
 
于是我用了这方法,也就是nginx -c /path/to/config/file)  //在我机器上是这样的/alidata/server/nginx/sbin/nginx -c /alidata/server/nginx/conf/nginx.conf

完成所有这些安装配置以后,就可以尽情的完爆Nginx和LUA了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值