正在为你努力加载中........

点滴记录 分享
14
2015-9
首页 >> linux >> nginx的编译过程

nginx的编译过程

参考地址:http://www.cnblogs.com/skynet/p/4146083.html


l  gzip模块需要 zlib 

l  rewrite模块需要 pcre 

l  ssl 功能需要openssl

1.1.安装pcre

1.         获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本

2.         解压缩pcre-xx.tar.gz包。

3.         进入解压缩目录,执行./configure

4.         make & make install

1.2.安装openssl

1.         获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。

2.         解压缩openssl-xx.tar.gz包。

3.         进入解压缩目录,执行./config

4.         make & make install

1.3.安装zlib

1.         获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本。

2.         解压缩openssl-xx.tar.gz包。

3.         进入解压缩目录,执行./configure

4.         make & make install

1.4.安装nginx

1.         获取nginx,在http://nginx.org/en/download.html上可以获取当前最新的版本。

2.         解压缩nginx-xx.tar.gz包。

3.         进入解压缩目录,执行./configure

4.         make & make install




nginx的下载地址:

http://nginx.org/en/download.html
pcre的下载地址:
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz
官方网站:
http://www.pcre.org/
1:编译pcre
[root@localhost soft]# tar -xvf pcre-8.30.tar.gz 
[root@localhost pcre-8.30]# cd pcre-8.30
[root@localhost pcre-8.30]# ./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.30]# make && make install
2:编译nginx
[root@localhost pcre-8.30]# cd ../nginx-1.8.0
[root@localhost nginx-1.8.0]# groupadd www #添加www组    
[root@localhost nginx-1.8.0]# useradd -g  www www -s /bin/false #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统 
./configure --prefix=/usr/local/nginx  --user=www --group=www --with-http_stub_status_module --with-openssl=/usr --with-pcre=/soft/pcre-8.30  #注意后面的pcre是源码目录
[root@localhost nginx-1.8.0]# make && make install

[root@localhost nginx-1.8.0]# /usr/local/nginx/sbin/nginx   #启动nginx

启动脚本:



#!/bin/bash
# nginx     This shell script takes care of starting and stopping
#           nginx
#
# chkconfig: - 13 68
# description: nginx is a web server
### BEGIN INIT INFO
# Provides: $named
# Short-Description: start|stop|status|restart|configtest 
### END INIT INFO
#variables
NGINX_BIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
NETSTAT="/bin/netstat"
alter=$1
prog=nginx
#load system function
. /etc/rc.d/init.d/functions
#function:echo ok or error
function if_no {
if [ $2 == 0 ]; then
echo -n $"$1 ${prog}:" && success && echo
else
echo -n $"$1 ${prog}:" && failure && echo
fi
}
#start nginx
function start {
if [ -s ${NGINX_PID} ]; then
echo "nginx already running" 
else
if [ `${NETSTAT} -tnpl | grep nginx | wc -l` -eq 0 ]; then
rm -f ${NGINX_PID} 2>/dev/null
${NGINX_BIN} -c ${NGINX_CONF} 
if_no start $?
        else
${NETSTAT} -tnpl | grep nginx | awk '{ print $7}' | cut -d '/' -f 1 > ${NGINX_PID}
if_no start $?
fi
fi
}
#stp nginx
function stop {
if [ -s ${NGINX_PID} ]; then
cat ${NGINX_PID} | xargs kill -QUIT
if_no stop $?
else
        if [ `${NETSTAT} -tnpl | grep nginx | wc -l` -eq 0 ]; then
rm -f ${NGINX_PID} 2>/dev/null
if_no stop 0
else
rm -f ${NGINX_PID} 2>/dev/null
kill `${NETSTAT} -tnpl | grep nginx | awk '{ print $7}' | cut -d '/' -f 1`
if_no stop $?
fi
fi
}
function restart {
if [ -s ${NGINX_PID} ]; then
cat ${NGINX_PID} | xargs kill -HUP
if_no restart $?
else
stop
sleep 1
start
fi
}
function status {
${NETSTAT} -tnpl | grep nginx | grep LISTEN
[ $? == 0 ] && echo "nginx is running" || echo "nginx is not running"
}
function configtest {
${NGINX_BIN} -t
}
case $alter in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
configtest)
configtest
;;
*)
echo "use:${NGINX} {start|stop|restart|status|configtest}"
;;
esac

作者:一根烟的寂寞 分类:linux
浏览:921 评论:0

发表评论: