nginx的编译安装

这里提供的算是一个操作手册,只有操作步骤,如果想了解更多,还是应该查询官方手册
虽然yum安装可以很方便的提供一个可用的nginx,但是出于后期维护的方便,nginx建议还是进行编译安装。特别是,对nginx功能配置要求比较多的环境下,yum安装版本增加模块、修改源码方面很尴尬。

1. 介质准备

a. nginx-1.13.8.tar.gz nginx主介质
b. zlib-1.2.11.tar.gz gzip模块需要使用zlib库
c. pcre-8.41.tar.gz rewrite 模块需要 pcre 库
d. openssl-1.1.0g.tar.gz | openssl-fips-2.0.16.tar.gz (https模块需要使用ssl库)
e. 基础环境准备:需要先安装gcc的一些库,建议使用yum安装:

yum install -y gcc gcc-c++

2. 安装步骤

2.1 编译安装openssl

tar -zxvf openssl-1.1.0g.tar.gz
cd openssl-1.1.0g
./configure
make && make install

cd ..
tar -zxvf openssl-fips-2.0.16
cd openssl-fips-2.0.16
./config
make && make install

openssl编译安装有时候会报莫名其妙的错误,很烦躁,如果发生了,就yum安装吧:

yum install -y openssl openssl-fips

2.2 编译安装zlib

tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install

2.3 编译安装pcre

tar -zxvf pcre-8.41.tar.gz
cd pcre-8.41
./configure
make && make install

2.4 编译安装nginx

tar -zxvf nginx-1.13.8.tar.gz
cd nginx-1.13.8
./configure --with-pcre=../pcre-8.41 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-fips-2.0.16 --with-http_ssl_module --with-http_v2_module
 make && make install

如果openssl是yum安装的,在参数在取消掉
另,版本不重要。

3. 相关配置修改

3.1 把nginx命令加入到全局变量中

采用这个流程安装的nginx,其安装目录位于/usr/local/nginx/ 下,执行

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

即可将nginx命令加入全局变量。现在执行

nginx 

如果没有报错,即表示nginx安装成功了。

3.2 添加nginx为系统服务

vi /etc/init.d/nginx

添加如下内容

######################################################
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
kill -INT `cat $PIDFILE` || echo -n "nginx not running"
}
do_reload() {
kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "." 
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "." 
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "." 
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "." 
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2 
exit 3
;;
esac
exit 0
#######################################

设置文件的访问权限:

chmod a+x /etc/init.d/nginx

(a+x参数表示 ==> all user can execute 所有用户可执行),即可通过
service nginx start(stop/reload)进行nginx的相关操作

3.3 nginx服务随系统启动

vi /etc/rc.local

添加

/etc/init.d/nginx start

保存并退出,下次重启就会生效,实现nginx的自启动

你可能感兴趣的:(nginx的编译安装)