Centos7下安装Nginx

通过添加yum源安装

安装编译器和依赖

 yum  install -y gcc gcc-c++ make libtool zlib \
zlib-devel openssl openssl-devel pcre pcre-devel

添加yum源

因为yum源中没有Nginx,所以先得把Nginx源加入yum中

其实安装rpm源就相当于我们自己新建一个repo仓库,只不过yum的话它自动帮我们建立 /etc/yum.repos.d/nginx.repo

Nginx-RPM源 http://nginx.org/packages

Nginx-packges
yum install -y http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
#其实安装rpm源就相当于我们自己新建一个repo仓库
#只不过yum的话他自动帮我们建立 /etc/yum.repos.d/nginx.repo

yum install nginx
rpm -q nginx

通过yum安装的好处是简单,方便管理和升级,能yum安装当然最好,其次才是源码安装。


通过源码安装

Nginx源码地址

https://nginx.org/en/download.html

建议安装稳定版

Nginx源码安装约定:

nginx源码路径:/usr/local/src
nginx安装路径:/usr/local/nginx
nginx配置文件路径:/usr/local/nginx/conf/nginx.conf
nginx虚拟主机路径:/usr/local/nginx/conf/vhosts

安装编译器和依赖

yum  install -y gcc gcc-c++ make libtool zlib \
zlib-devel openssl openssl-devel pcre pcre-devel

下载源码

cd /usr/local/src
wget https://nginx.org/download/nginx-1.12.1.tar.gz

添加nginx用户和组

useradd  -s /sbin/nologin -M nginx
#也可指定UID, -u

安装Nginx

tar -xzvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./configure --prefix=/usr/local/nginx \
--user=nginx --group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-pcre \
--with-ipv6 \
--with-stream

make && make install

设置环境变量

echo "export PATH=$PATH:/usr/local/nginx/sbin" >> /etc/profile
source /etc/profile

添加nginx启动脚本

vi /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)

sysconfig="/etc/sysconfig/$prog"
lockfile="/var/lock/subsys/nginx"
pidfile="/usr/local/nginx/logs/${prog}.pid"

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

[ -f $sysconfig ] && . $sysconfig


start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    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 -p $pidfile $prog
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest_q || return 6
    stop
    start
}

reload() {
    configtest_q || return 6
    echo -n $"Reloading $prog: "
    killproc -p $pidfile $prog -HUP
    echo
}

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

configtest_q() {
    $nginx -t -q -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

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

# Upgrade the binary with no downtime.
upgrade() {
    local oldbin_pidfile="${pidfile}.oldbin"

    configtest_q || return 6
    echo -n $"Upgrading $prog: "
    killproc -p $pidfile $prog -USR2
    retval=$?
    sleep 1
    if [[ -f ${oldbin_pidfile} && -f ${pidfile} ]];  then
        killproc -p $oldbin_pidfile $prog -QUIT
        success $"$prog online upgrade"
        echo 
        return 0
    else
        failure $"$prog online upgrade"
        echo
        return 1
    fi
}

# Tell nginx to reopen logs
reopen_logs() {
    configtest_q || return 6
    echo -n $"Reopening $prog logs: "
    killproc -p $pidfile $prog -USR1
    retval=$?
    echo
    return $retval
}

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


两者的卸载和升级

yum卸载 yum remove xxx
yum升级 yum update xxx

源码的话,要麻烦一些:
有提供 unstall 的话可以 make uninstall,或者找出安装的文件夹,whereis, --prefix那些,删除那些文件夹;
下载新版本安装包,注意编译参数那些,重新安装;




顺便谈谈yum安装和源码安装

yum安装是将yum源的rpm包下载到本地,安装这个rpm包。这个rpm包是别人编译安装好的二进制包;

源码安装,下载源码,解压缩后进行编译和安装,可进行参数等设定;

yum安装优缺点:

安装简单、快捷、方便,自动安装依赖包,管理方便;
但安装无法进行人为干预,不能按需安装。源里面有什么就安装什么。

源码安装优缺点:

编译安装过程可执行设定参数,按需安装,可自己选择版本,灵活性大;
Linux中的包,一个依赖一个,装任何一个东西都要解决依赖问题,源码就得要解决一堆依赖问题。源码安装多了,不敢升级系统,升级后可能导致以前手动装的东西由于依赖问题而无法使用。

源码安装是很有必要的,这样可以知道自己在做什么。安装过程中遇到很多问题,正好可以学习如何解决,这样才能成长。如果一直用yum装,如果yum安装出了问题,不知道怎么解决就很悲剧了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • http://blog.csdn.net/mathewsking/article/details/8211273 ...
    liuboxx1阅读 6,040评论 1 1
  • 一、编译安装的方式 预安装nginx依赖的一些库或软件并创建运行nginx的账户 到nginx官网下载最新版本的n...
    清月比特阅读 384评论 0 0
  • 关于 Nginx Nginx 是一个网页的服务器,它能代理HTTP、HTTPS、SMTP、POP3、IMAP的协议...
    苏近之2017阅读 91评论 0 0
  • 《鸟哥的Linux私房菜》笔记 软件管理器简介 不是每个人都会进行源码安装的! 厂商先在他们的系统上面编译好了我们...
    Zhang21阅读 1,440评论 0 6
  • 久久不能平静,是因为第一次坐飞机,哈哈。特别是在这之前,一想到要坐飞机,就想立马告诉身边的人,想把自己的这份欣喜找...
    LeiovU阅读 175评论 0 0