Home  >  Article  >  Backend Development  >  Compile nginx from source code in centos

Compile nginx from source code in centos

WBOY
WBOYOriginal
2016-08-08 09:29:06952browse

mkdir /usr/local/nginx

先安装pcre,Rewrite模块需要

tar zxvf pcre-8.10.tar.gz

cd pcre-8.10/./configure

make && make install

groupadd -r nginx

useradd -r -g nginx -s /bin/false -M nginx

tar -zxvf nginx-1.7.10

cd nginx-1.7.10

./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-http_realip_module --with-http_gzip_static_module --with-file-aio

make && make install

添加启动脚本:vim /etc/init.d/nginx

#!/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:      /usr/local/nginx/conf/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /usr/local/nginx/logs/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
                                                                                                                                                                                                      
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
                                                                                                                                                                                                      
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
                                                                                                                                                                                                        
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
                                                                                                                                                                                                          
lockfile=/var/lock/subsys/nginx
                                                                                                                                                                                                            
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

启动脚本到这里介绍。

开启php支持,vim /usr/local/nginx/conf/nginx.conf

location / {

            root   html;

            index  index.html index.htm index.php;    //添加index.php

        }

//启用下面的配置

location ~ .php$ {

            root           html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;

            #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

vim /etc/nginx/fastcgi_params,如果没有或者是空白的话,查找一下find / -name fastcgi_params,然后拷贝过来

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;

fastcgi_param  REQUEST_METHOD     $request_method;

fastcgi_param  CONTENT_TYPE       $content_type;

fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

fastcgi_param  REQUEST_URI        $request_uri;

fastcgi_param  DOCUMENT_URI       $document_uri;

fastcgi_param  DOCUMENT_ROOT      $document_root;

fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;

fastcgi_param  REMOTE_PORT        $remote_port;

fastcgi_param  SERVER_ADDR        $server_addr;

fastcgi_param  SERVER_PORT        $server_port;

fastcgi_param  SERVER_NAME        $server_name;


chmod +x /etc/init.d/nginx

chkconfig --add nginx

chkconfig nginx on

service nginx start

以上就介绍了centos中源码编译nginx,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn