• redhat 5下源码安装nginx服务


    首先确保机器中已安装 gcc c++,libtool等工具,保证可执行源码安装

    A、为了确保能在 Nginx 中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有 PCRE(Perl Compatible Regular Expressions)包。您可以到 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

    1、解压:tar -zxvf pcre-8.34.tar.gz

    2、切换到目录:cd pcre-8.34/

    3、指定安装路径:./configure --prefix=/usr/local/pcre

    4、编译并安装:make &&  make install

    B、为了确保能在 Nginx 中使用URL重写模块,安装之前需要确定系统是否安装有 openssl包。您可以到http://www.openssl.org/source/ 下载适合自己系统的 openssl 源码包,使用下面命令下载编译和安装openssl包:

    1、解压:tar -zxvf openssl-0.9.8y.tar.gz

    2、切换到目录:cd ./openssl-0.9.8y/

    3、指定安装路径:./configure --prefix=/usr/local/openssl  shared zlib-dynamic enable-camellia

    4、编译并安装:make &&  make install

    【PS:系统自带的openssl为其他软件的依赖项请勿轻易卸载】

    使新安装的openssl发挥作用

    a、将openssl安装路径加入到$PATH中:

      vi /etc/profile

      SSLPATH=/usr/local/openssl/bin  

      PATH=$SSLPATH:$PATH

          export PATH

    b、将路径/usr/bin/下openssl改名为openssl0.9.8(安装的软件包名)

          切换到操作目录下(/usr/bin/):mv   openssl openssl 0.9.8

    c、将/usr/local/openssl/include/openssl内容拷贝到/usr/include/下,并更名为openssl0.9.8

         切换到操作目录下(/usr/include/):cp -r /usr/local/openssl/include/openssl  ./

    C、开始安装nginx服务

    1、解压:tar -zxvf nginx-1.4.7.tar.gz

    2、切换到目录:cd ./nginx-1.4.7/

    3、指定安装路径:./configure  

                            --prefix=/usr/local/nginx-1.4.7  

                            --sbin-path=/usr/sbin/nginx  

              --conf-path=/etc/nginx/nginx.conf  

              --error-log-path=/var/log/nginx/error.log  

              --pid-path=/var/run/nginx/nginx.pid  

              --lock-path=/var/lock/nginx.lock  

              --user=nginx  

                --group=nginx  

              --with-http_ssl_module  

              --with-http_flv_module  

              --with-http_gzip_static_module  

               --http-log-path=/var/log/nginx/access.log  

             --http-client-body-temp-path=/var/tmp/nginx/client

             --http-proxy-temp-path=/var/tmp/nginx/proxy          

             --http-fastcgi-temp-path=/var/tmp/nginx/fcgi  

             --with-http_stub_status_module  

             --with-pcre=/home/andy/pcre-8.34   

               --with-openssl=/home/andy/openssl-0.9.8y  

               --with-zlib=/home/andy/zlib-1.2.8

    [

        PS:注意事项。pcre,openssl,zlib依赖项的路径问题

      –with-pcre|--with-openssl|--with-zlib=DIR set path to PCRE library sources

      注意:set path to XX library sources是让你设置到源码目录,而不是编译安装后的目录。

    ]

    4、编译并安装:make &&  make install

    5、测试安装

      a、第一步:/usr/sbin/nginx -c /etc/nginx/nginx.conf  (提示/var/tmp/nginx/client目录不存在时,请自行建立该目录)

      b、第二步:nginx -c /etc/nginx/nginx.conf  (提示80端口已被占用,请先停止占用该端口的服务)

      c、第三步:ps -ef | grep nginx  (查看服务是否启动)

    6、将nginx作为启动项的shell脚本

     #!/bin/sh
     #
     # nginx - this script starts and stops the nginx daemon
     #
     # chkconfig: - 85 15
     # description: Nginx is an HTTP(S) server, HTTP(S) reverse
     # proxy and IMAP/POP3 proxy server
     # processname: nginx
     # config: /etc/nginx/nginx.conf
     # config: /etc/sysconfig/nginx
     # pidfile: /var/run/nginx.pid

     # Source function library.
     . /etc/rc.d/init.d/functions

     # Source networking configuration.
     . /etc/sysconfig/network

     # Check that networking is up.
     [ "$NETWORKING" = "no" ] && exit 0

     pidfile=/var/run/nginx/nginx.pid
     nginx="/usr/sbin/nginx"
     prog=$(basename $nginx)

     NGINX_CONF_FILE="/etc/nginx/nginx.conf"

     [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

     lockfile=/var/lock/nginx.lock

     make_dirs() {
     # make required directories
     user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=([^ ]*).*/1/g' -`
     options=`$nginx -V 2>&1 | grep 'configure arguments:'`
     for opt in $options; do
     if [ `echo $opt | grep '.*-temp-path'` ]; then
     value=`echo $opt | cut -d "=" -f 2`
     if [ ! -d "$value" ]; then
     # echo "creating" $value
     mkdir -p $value && chown -R $user $value
     fi
     fi
     done
     }

     start() {
     [ -x $nginx ] || exit 5
     [ -f $NGINX_CONF_FILE ] || exit 6
     make_dirs
     echo -n $"Starting $prog: "
     daemon $nginx -c $NGINX_CONF_FILE
     retval=$?
     echo
     [ $retval -eq 0 ] && touch $lockfile
     return $retval
     }

     stop() {
     echo -n $"Stopping $prog: "
     killproc $prog -QUIT
     retval=$?
     echo
     [ $retval -eq 0 ] && rm -f $lockfile
     return $retval
     }

     restart() {
     configtest || return $?
     stop
     sleep 1
     start
     }

     reload() {
     configtest || return $?
     echo -n $"Reloading $prog: "
     killproc $nginx -HUP
     RETVAL=$?
     echo
     }

     force_reload() {
     restart
     }

     configtest() {
     $nginx -t -c $NGINX_CONF_FILE
     }

     rh_status() {
     status $prog
     }

     rh_status_q() {
     rh_status >/dev/null 2>&1
     }

     case "$1" in
     start)
     rh_status_q && exit 0
     $1
     ;;
     stop)
     rh_status_q || exit 0
     $1
     ;;
     restart|configtest)
     $1
     ;;
     reload)
     rh_status_q || exit 7
     $1
     ;;
     force-reload)
     force_reload
     ;;
     status)
     rh_status
     ;;
     condrestart|try-restart)
     rh_status_q || exit 0
     ;;
     *)
     echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
     exit 2
     esac

    使用chkconfig加载shell设置成服务: 

    Shell代码
    1. [root@localhost ~]# cp nginx /etc/init.d/nginx  
    2. [root@localhost ~]# cd /etc/init.d  
    3. [root@localhost init.d]# chmod 755 nginx
    4. [root@localhost init.d]# chkconfig --add nginx   



    下边启动nginx: 

    Shell代码 
    1. [root@localhost init.d]# service nginx start  
    2. Starting nginx:                                               [ok]  


    shell里还有其他的命令用起来都很方便,希望能帮助大家: 

  • 相关阅读:
    计算机图形学——几何变换的数学基础
    算法设计与分析——多边形游戏(动态规划)
    算法设计与分析——凸多边形最优三角剖分(动态规划)
    计算机图形学——反走样
    Android 5.0 API
    Android 6.0 API
    Android 7.0 新增功能和api
    Android 8.0 功能和 API
    Android P 功能和 API
    解决华为手机无法输出Debug级别log的问题
  • 原文地址:https://www.cnblogs.com/cugb-2013/p/3639058.html
Copyright © 2020-2023  润新知