首页 > 代码库 > CentOS 6.5 源码安装Nginx

CentOS 6.5 源码安装Nginx

一、软件配置信息

CentOS 6.5

二、必要软件准备

检查安装pcre,openssl,gzip命令如下:

yum install -y zlib zlib-devel pcre pcre-devel openssl openssl-devel

三、创建Nginx用户与组

[root@localhost src]# groupadd nginx  
[root@localhost src]# useradd -r -g nginx -s /sbin/nologin -M nginx

四、下载解压

Nginx可以从官网下载:http://nginx.org/ 

也可以通过命令直接下载,我的当前目录是/usr/local/src:

[root@localhost src]# wget http://nginx.org/download/nginx-1.10.1.tar.gz

解压:

[root@localhost src]# tar zxvf nginx-1.10.1.tar.gz   
[root@localhost src]# cd nginx-1.10.1

五、开始安装

[root@localhost src]# cd nginx-1.6.3  

[root@localhost nginx-1.6.3]# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-file-aio --with-http_spdy_module --with-ipv6 --with-pcre   

./configure \  
--prefix=/usr/local/nginx \  
--sbin-path=/usr/sbin/nginx  \  
--conf-path=/usr/local/nginx/conf/nginx.conf   \  
--error-log-path=/var/log/nginx/error.log  \  
--http-log-path=/var/log/nginx/access.log   \  
--pid-path=/var/run/nginx.pid   \  
--lock-path=/var/run/nginx.lock  \  
--http-client-body-temp-path=/var/cache/nginx/client_temp  \  
--http-proxy-temp-path=/var/cache/nginx/proxy_temp  \  
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp  \  
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp  \  
--http-scgi-temp-path=/var/cache/nginx/scgi_temp  \  
--user=nginx  \  
--group=nginx   \  
--with-http_ssl_module  \  
--with-http_realip_module  \  
--with-http_addition_module  \  
--with-http_sub_module  \  
--with-http_dav_module  \  
--with-http_flv_module  \  
--with-http_mp4_module  \  
--with-http_gunzip_module  \  
--with-http_gzip_static_module \  
--with-http_random_index_module \  
--with-http_secure_link_module \  
--with-http_stub_status_module \  
--with-http_auth_request_module  \  
--with-file-aio  \  
--with-http_spdy_module  \  
--with-ipv6  \ 
--with-pcre  
  
[root@localhost nginx-1.6.3]# make  
[root@localhost nginx-1.6.3]# make install

六、启动停止

启动命令:

[root@localhost nginx-1.6.3]# /usr/sbin/nginx

测试,直接用curl命令读取web信息:

[root@localhost sbin]# curl -s http://localhost | grep nginx.com

关闭命令:

[root@localhost nginx-1.6.3]# /usr/sbin/nginx -s stop  
 reload,当你修改配置时,用此命令不用再重启就生效了:
[root@localhost nginx-1.6.3]# /usr/sbin/nginx -s reload

七、配置Nginx为系统服务
添加如下文件:

vi /etc/init.d/nginx
#!/bin/sh  
#  
# nginx        Startup script for nginx  
#  
# chkconfig: - 85 15  
# processname: nginx  
# config: /etc/nginx/nginx.conf  
# config: /etc/sysconfig/nginx  
# pidfile: /var/run/nginx.pid  
# description: nginx is an HTTP and reverse proxy server  
#  
### BEGIN INIT INFO  
# Provides: nginx  
# Required-Start: $local_fs $remote_fs $network  
# Required-Stop: $local_fs $remote_fs $network  
# Default-Start: 2 3 4 5  
# Default-Stop: 0 1 6  
# Short-Description: start and stop nginx  
### END INIT INFO  
  
# Source function library.  
. /etc/rc.d/init.d/functions  
  
if [ -L $0 ]; then  
    initscript=`/bin/readlink -f $0`  
else  
    initscript=$0  
fi  
  
sysconfig=`/bin/basename $initscript`  
  
if [ -f /etc/sysconfig/$sysconfig ]; then  
    . /etc/sysconfig/$sysconfig  
fi  
  
nginx=${NGINX-/usr/sbin/nginx}  
prog=`/bin/basename $nginx`  
conffile=${CONFFILE-/etc/nginx/nginx.conf}  
lockfile=${LOCKFILE-/var/lock/subsys/nginx}  
pidfile=${PIDFILE-/var/run/nginx.pid}  
SLEEPMSEC=${SLEEPMSEC-200000}  
UPGRADEWAITLOOPS=${UPGRADEWAITLOOPS-5}  
RETVAL=0  
  
start() {  
    echo -n $"Starting $prog: "  
  
    daemon --pidfile=${pidfile} ${nginx} -c ${conffile}  
    RETVAL=$?  
    echo  
    [ $RETVAL = 0 ] && touch ${lockfile}  
    return $RETVAL  
}  
  
stop() {  
    echo -n $"Stopping $prog: "  
    killproc -p ${pidfile} ${prog}  
    RETVAL=$?  
    echo  
    [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}  
}  
  
reload() {  
    echo -n $"Reloading $prog: "  
    killproc -p ${pidfile} ${prog} -HUP  
    RETVAL=$?  
    echo  
}  

upgrade() {  
    oldbinpidfile=${pidfile}.oldbin  
  
    configtest -q || return  
    echo -n $"Starting new master $prog: "  
    killproc -p ${pidfile} ${prog} -USR2  
    echo  
  
    for i in `/usr/bin/seq $UPGRADEWAITLOOPS`; do  
        /bin/usleep $SLEEPMSEC  
        if [ -f ${oldbinpidfile} -a -f ${pidfile} ]; then  
            echo -n $"Graceful shutdown of old $prog: "  
            killproc -p ${oldbinpidfile} ${prog} -QUIT  
            RETVAL=$?  
            echo  
            return  
        fi  
    done  
  
    echo $"Upgrade failed!"  
    RETVAL=1  
}  

configtest() {  
    if [ "$#" -ne 0 ] ; then  
        case "$1" in  
            -q)  
                FLAG=$1  
                ;;  
            *)  
                ;;  
        esac  
        shift  
    fi  
    ${nginx} -t -c ${conffile} $FLAG  
    RETVAL=$?  
    return $RETVAL  
}  
  
rh_status() {  
    status -p ${pidfile} ${nginx}  
}  
  
# See how we were called.  
case "$1" in  
    start)  
        rh_status >/dev/null 2>&1 && exit 0  
        start  
        ;;  
    stop)  
        stop  
        ;;  
    status)  
        rh_status  
        RETVAL=$?  
        ;;  
    restart)  
        configtest -q || exit $RETVAL  
        stop  
        start  
        ;;  
    upgrade)  
        rh_status >/dev/null 2>&1 || exit 0  
        upgrade  
        ;;

    condrestart|try-restart)  
        if rh_status >/dev/null 2>&1; then  
            stop  
            start  
        fi  
        ;;  
    force-reload|reload)  
        reload  
        ;;  
    configtest)  
        configtest  
        ;;  
    *)  
        echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest}"  
        RETVAL=2  
esac  
  
exit $RETVAL
  1. 修改文件权限:

chmod +x /etc/init.d/nginx

查看Nginx服务:

chkconfig --list nginx 
nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off

本文出自 “IT·奋斗” 博客,谢绝转载!

CentOS 6.5 源码安装Nginx