Centos 7.0 编译安装LNMP(Linxu+nginx+mysql+php)之源码安装nginx

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos 7.0 编译安装LNMP(Linxu+nginx+mysql+php)之源码安装nginx 相关的知识,希望对你有一定的参考价值。

nginx简介:     

      Nginx (engine x) 是一个高性能的HTTP反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

       其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

       Nginx是一款轻量级Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东新浪网易腾讯淘宝等。



安装环境:

     系统: centos 7.0 最小化安装

     软件:nginx

     依赖包:pcre、openssl、zlib

准备工作: 

  1. 关闭firewall:
    [[email protected] ~]# systemctl stop firewalld.service #停止firewall

    [[email protected]     ~]# systemctl disable firewalld.service #禁止firewall开机启动

  2. 安装iptables防火墙

    [[email protected] ~]# yum install iptables-services #安装

    [[email protected]     ~]# vi /etc/sysconfig/iptables #编辑防火墙配置文件

    添加代码如下:

    -A INPUT -p tcp -m     state --state NEW -m tcp --dport 80 -j ACCEPT#允许http协议80  端口通过

    -A INPUT -p tcp -m     state --state NEW -m tcp --dport 3306 -j ACCEPT#允许mysql  3306端口通过

    :wq! #保存退出

    [[email protected] ~]systemctl   restart iptables.service #最后重启防火墙使配置生效

    [[email protected] ~]systemctl   enable iptables.service #设置防火墙开机启动     

  3. 关闭selinux           

    [[email protected] ~] vi /etc/selinux/config

    #SELINUX=enforcing #注释掉

    #SELINUXTYPE=targeted #注释掉

    SELINUX=disabled #增加改行内容

    :wq! #保存退出

    [[email protected]     ~]#setenforce 0 #使配置立即生效

  4. 源码安装包及依赖包上传到目录      /usr/local/src  

nginx     源码包     

mysql    源码包     mysql-5.6.19

php       源码包       php-5.5.1 


安装nginx


  1. yum安装依赖包perl、gcc 、gcc-c++  

    [[email protected] ~]yum install -y perl gcc gcc-c++

  2. 安装依赖包pcre

    [[email protected] ~]#cd /usr/local/src

    [[email protected] ~]#mkdir /usr/local/pcre

    [[email protected] ~]#tar zxvf pcre-8.35.tar.gz

    [[email protected] ~]#cd pcre-8.35

    [[email protected]pcre-8.35 ~]#./configure --prefix=/usr/local/pcre       #编译 

    [[email protected] ~]#make && make install                           #安装 

  3. 安装依赖包openssl

    [[email protected] ~]#cd /usr/local/src

    [[email protected] ~]#mkdir /usr/local/openssl

    [[email protected] ~]#tar zxvf openssl-1.0.1h.tar.gz

    [[email protected] ~]#cd openssl-1.0.1h

    [[email protected]openssl-1.0.1h ~]#./config --prefix=/usr/local/openssl                  #编译 

    [[email protected] ~]#make && make install                                       #安装 

    [[email protected] ~]#echo ‘export PATH=$PATH:/usr/local/openssl/bin‘ >>/etc/profile #把openssl服务加入系统环境变量:在最后添加下面这一行export PATH=$PATH:/usr/local/openssl/bin

    :wq! #保存退出

    [[email protected] ~]#source /etc/profile

  4. 安装依赖包zlib

    [[email protected] ~]cd /usr/local/src

    [[email protected] ~]mkdir /usr/local/zlib

    [[email protected] ~]tar zxvf zlib-1.2.8.tar.gz

    [[email protected] ~]cd zlib-1.2.8

    [[email protected]zlib-1.2.8 ~]./configure --prefix=/usr/local/zlib

    [[email protected]zlib-1.2.8 ~]make && make install

  5. 安装Nginx 

    [[email protected] ~]groupadd www                                              #添加www组

    [[email protected] ~]useradd -g www www -s /bin/false                  #添加www用户,属于www组,且禁止该用户登陆系统

    [[email protected] ~]cd /usr/local/src

    [[email protected] ~]tar zxvf nginx-1.6.0.tar.gz

    [[email protected] ~]cd nginx-1.6.0

    [[email protected]nginx-1.6.0 ~] ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.1h --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.39  #编译 

    [[email protected] ~] make && make install                                   #安装 

    [[email protected] ~] /usr/local/nginx/sbin/nginx                          #启动nginx

  6. 编辑nginx启动脚本,

    [[email protected] ~]  vi /etc/rc.d/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: /etc/nginx/nginx.conf

    # config: /usr/local/nginx/conf/nginx.conf

    # 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‘ -`

    if [ -z "`grep $user /etc/passwd`" ]; then

    useradd -M -s /bin/nologin $user

    fi

    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

    ############################################################

    :wq! #保存退出

    [[email protected] ~]chmod 775 /etc/rc.d/init.d/nginx  #赋予文件执行权限

    [[email protected] ~]chkconfig nginx on  #设置开机启动

    [[email protected] ~]service nginx restart #重启

  7. 在浏览器中打开服务器IP地址,会看到下面的界面,说明Nginx安装成功。

    技术分享



至此 ,Centos 7.0 编译安装LNMP(Linxu+nginx+mysql+php)之源码安装nginx 完成。


本文出自 “ITCol_XiaoYu” 博客,请务必保留此出处http://itcolxiaoyu.blog.51cto.com/11439802/1946766

以上是关于Centos 7.0 编译安装LNMP(Linxu+nginx+mysql+php)之源码安装nginx 的主要内容,如果未能解决你的问题,请参考以下文章

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装Mysql

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装php

请问 lnmp 7.0 配置成功支持SSL吗

CentOS 7.4 64位 编译安装 LNMP

CentOS 7.0源码包搭建LNMP

CentOS 7.0源码包搭建LNMP