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 完成。

时间: 2024-10-01 03:32:48

Centos 7.0 编译安装LNMP(Linxu+nginx+mysql+php)之源码安装nginx (一)的相关文章

mysql学习之--源码安装(1)

0x01 MySQL 从 5.5 版本开始,通过 ./configure 进行编译配置方式已经被取消,取而代之的是 cmake 工具 引用一句话 cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译. 所以首先要安装cmake 可以源码安装也可以 使用已经编译好的rpm包进行安装 yum安装  yum inst

linux下MySQL 5.6源码安装

linux下MySQL 5.6源码安装 1.下载:当前mysql版本到了5.6.20 http://dev.mysql.com/downloads/mysql 选择Source Code 2.必要软件包 yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake 3.编译安装 添加用户 groupad

Nginx 1.13.6 源码安装

系统:Centos 7.3 Server with GUI 软件:nginx-1.13.6.tar.gz 其他所需软件:openssl pcre zlib openssl-devel 安装方式:源码编译安装 安装位置:/usr/local/nginx 下载地址: http://nginx.org/en/download.html https://www.openssl.org/source/ https://ftp.pcre.org/pub/pcre/ http://zlib.net/ 安装需要

CentOS 6.3下MySQL 5.6源码安装

Linux操作系统:CentOS 6.3 1:下载:当前mysql版本到了5.6.10 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择“Source Code”  在此之前最好注册一个Oracle账号 2:必要软件包 yum -y install  gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* li

MySQL入门01-MySQL源码安装

操作系统:CentOS 6.7MySQL版本:5.6.30 1.前期准备 2.系统配置 3.CMake编译配置 4.make && make install 5.后期配置和测试 Reference 1.前期准备 首先需要CMake,可以yum直接安装: yum install cmake 也可以官网 https://cmake.org/ 下载源码编译.我这里选择了官网下载最新版本cmake-3.5.2.tar.gz. # tar -zxvf cmake-3.5.2.tar.gz &

LAMP安装(一)关于Apache的源码安装

什么是LAMP      LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写: Linux,操作系统 Apache,网页服务器 MariaDB或MySQL,数据库管理系统(或者数据库服务器) PHP.Perl或Python,脚本语言 LAMP框架我们需要的源码包如下: Apache=http://httpd.apache.org/                                                      httpd主程序包 MySQL=h

编译mysql 5.7 源码安装常见问题

cmake版本 5.7编译cmake要求版本最低为2.8,当前为2.6,所以需要升级cmake版本.信息如下 shell> cmake . -DCMAKE_INSTALL_PREFIX=/db/mysql/mysql_57 -DMYSQL_DATADIR=/db/mysql/mysql_57/data CMake Error at CMakeLists.txt:21 (CMAKE_MINIMUM_REQUIRED):   CMake 2.8.2 or higher is required.  Y

Linux MySQL 5.1源码安装

安装必备的软件 yum install ncurses-devel -y yum install pcre pcre-devel -y yum install gcc* -y 解压缩 tar -zxvf mysql-5.1.72.tar.gz 创建目录 mkdir /application/mysql5.1.72/{data,tmp} -p chown -R mysql:mysql /application 编译MySQL ./configure \ --prefix=/application/

LNMP架构 源码安装nginx+mysql+php+memcache+论坛

一.LNMP架构 LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构. Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统.代表版本有:debian.centos.ubuntu.fedora.gentoo等. Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器. Mysql是一个小型关系型数据库管理系统. PHP是一种在服务器端执行的嵌入HTML文档的脚本语言. 这四种软件均为免费开源软件,组合

CentOS 源码安装 zabbix3.4

环境: CentOS: 6.9 IP:192.168.1.92 JDK:1.7.0.45 ngingx: 1.13.6 mysql:  5.7.21-linux-glibc2.5-x86_64 php:    5.6.31 zabbix: 3.4.2 源码包存放路径:/data/tools/ 安装路径:      /usr/local/ 1.关闭防火墙和selinux 1.1. 关闭iptables ]# service iptables stop iptables: Setting chain