环境及规划

[root@nginx-node01 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
ID 主机名 ip 系统配置 软件版本 操作系统
01 nginx-node01 192.168.56.104 1C 1G 1.16.0稳定版 CentOS 7.6.1810

编译依赖检查

  1. gcc编译环境

  2. pcre & pcre-dev

  3. zlib & zlib-dev

  4. openssl & openssl-dev

[root@nginx-node01 nginx]# cat ifinstall.sh
#!/bin/bash
#auto install nginx v0.1 #check if package was installed
function checkInstall(){
echo "Checking $1 installed or not"
#rpm -q $1 >/dev/null 2>&1
rpm -q $1
if [ $? -eq 0 ]; then
echo "$1 installed "
else
echo "$1 not installed, will install $1 "
yum -y install $1
if [ $? -ne 0 ];then
echo "Install $1" /bin/false
exit 1
fi
fi
} ##环境及依赖检查
#gcc
checkInstall gcc-c++ #pcre & pcre-devel
checkInstall pcre && checkInstall pcre-devel #zlib & zlib-devel
checkInstall zlib && checkInstall zlib-devel #openssl & openssl-devel
checkInstall openssl && checkInstall openssl-devel

安装步骤

  1. 检查并添加nginx用户和组

  2. 解压软件包、创建相关目录

  3. 执行预编译配置

  4. 执行编译、执行安装

[root@nginx-node01 ~]# useradd -g nginx nginx
[root@nginx-node01 ~]# id nginx
uid=1000(nginx) gid=1000(nginx) groups=1000(nginx)

[root@nginx-node01 nginx]# cat nginx_install.sh
#!/bin/bash
#check if a user exists and add it #set -n
set -v #用户及组
NX_GROUP='nginx'
NX_USER='nginx' #源码包位置
NX_TMP_DIR='/tmp/nginx/' #源码版本
NX_VER=1.16.0
NX_FILE="nginx-$NX_VER.tar.gz"
NX_FILE_ABS=$NX_TMP_DIR$NX_FILE #解压后源码位置
NX_DIR=`echo $NX_FILE |sed 's/\.tar.*//g'`
NX_SRC_ABS=${NX_TMP_DIR}${NX_DIR} #Nginx home 目录
NX_HOME='/home/nginx'
NX_LOG=$NX_HOME/log
NX_TARGET=${NX_HOME}/${NX_VER} #解压源码
if [ -d $NX_SRC_ABS ];then
echo "$NX_SRC_ABS already exists"
else
tar -xvzf $NX_FILE
fi ##配置相关目录、预编译
cd $NX_SRC_ABS ##设置安装目录
#添加log目录
if [ ! -d $NX_LOG ]; then
mkdir -p $NX_LOG
fi
#Nginx 安装目录
if [ ! -d ${NX_TARGET} ]; then
mkdir -p ${NX_TARGET}
fi #预编译配置
./configure \
--user=$NX_USER \
--group=$NX_GROUP \
--prefix=${NX_TARGET} \
--sbin-path=${NX_TARGET}/nginx \
--conf-path=${NX_TARGET}/nginx.conf \
--pid-path=${NX_LOG}/nginx.pid \
--error-log-path=${NX_LOG}/error.log \
--http-log-path=${NX_LOG}/access.log \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module #编译 && 安装
make && make install

安装验证

[root@nginx-node01 ~]# /home/nginx/1.16.0/nginx -V
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/home/nginx/1.16.0 --sbin-path=/home/nginx/1.16.0/nginx --conf-path=/home/nginx/1.16.0/nginx.conf --pid-path=/home/nginx/log/nginx.pid --error-log-path=/home/nginx/log/error.log --http-log-path=/home/nginx/log/access.log --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module

启动验证

[root@nginx-node01 ~]# netstat -ntlp |grep -aiw 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21949/nginx: master
[root@nginx-node01 ~]# ps -ef |grep nginx
root 21949 1 0 11:58 ? 00:00:00 nginx: master process ./nginx
nginx 21950 21949 0 11:58 ? 00:00:00 nginx: worker process

服务验证

[root@nginx-node01 ~]# curl localhost:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p> <p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p>
</body>
</html>

对外服务验证

#关闭防火墙
systemctl stop firewalld.service

Shell编译安装nginx的更多相关文章

  1. linux软件管理之------编译安装nginx服务器并手动编写自动化运行脚本

    红帽系列的 linux软件管理分为三类:1. rpm 安装软件.2. yum 安装软件.3. 源码包编译安装.前面两种会在相关专题给出详细讲解.源码包的编译安装是非常关键的,我们知道linux的相关版 ...

  2. 初识Nginx及编译安装Nginx

    初识Nginx及编译安装Nginx 环境说明: 系统版本    CentOS 6.9 x86_64 软件版本    nginx-1.12.2 1.什么是Nginx? 如果你听说或使用过Apache软件 ...

  3. Windows 编译安装 nginx 服务器 + rtmp 模块

    有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...

  4. centos系统编译安装nginx+php环境另加独立mysql教程

    以前看过的安装nginx+php环境都带了mysql数据库了,这个是因为很多站长都是nginx+php+mysql都在同一台服务器了,那么今天我们是单独处理了,一个是nginx+php环境,然后mys ...

  5. Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Mariadb 10.1.20 + Nginx 1.10.2 + PHP 7.1.0 + Laravel 5.3 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

  6. CentOS7 编译安装 Nginx (实测 笔记 Centos 7.0 + nginx 1.6.2)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...

  7. Mac Pro 编译安装 Nginx 1.8.1

    #下载相关源码包,统一放到 /usr/local/src 目录下: http://nginx.org/download/nginx-1.8.1.tar.gz http://zlib.net/zlib- ...

  8. 【转】linux 编译安装nginx,配置自启动脚本

    linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...

  9. linux 编译安装nginx,配置自启动脚本

    本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装nginx,记录下安装过程: 参照这篇文章:Linu ...

随机推荐

  1. Mac更新系统后提示xcrun error

    更新mac os后无法运行git,gcc等命令,出现missing xcrun错误. 这是因为更新系统后会卸载xcode,重新安装后会缺失xcode的命令行工具(command line tools) ...

  2. B. Sleepy Game 博弈搜索

    题意:给一个有向图和起点,然后只有一名选手,这名选手可以随意挪动棋子,最终不能动的时候走过的边为奇数边为Win并输出路径,否则如果有环输出Draw,否则输出Lose; 题目链接 知道状态数最多只有n* ...

  3. 【Java_SSM】(三)maven中的配置文件setting的配置

    这篇博文我们介绍两方面:如何修改setting.xml文件及相应配置(本文maven版本为3.5.0) (1)首先打开maven文件目录--conf,会看见如下目录 (2)复制setting.xml文 ...

  4. 17-4 delete-truncate语句-练习

    --删除数据语句: --delete from 表名 where ... --delete语句如果不加where条件,表示将表中所有的数据都删除,加where条件后,会按照where条件进行删除. - ...

  5. sklearn学习:为什么roc_auc_score()和auc()有不同的结果?

    为什么roc_auc_score()和auc()有不同的结果? auc():计算ROC曲线下的面积.即图中的area roc_auc_score():计算AUC的值,即输出的AUC 最佳答案 AUC并 ...

  6. 【python 爬虫】fake-useragent Maximum amount of retries reached解决方案

    前言 在用fake-useragent的时候发生报错,fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reach ...

  7. ATX插件机制-学习学习

    添加插件:记录一下 https://testerhome.com/topics/16074 webview操作: https://testerhome.com/topics/12599

  8. VS中自定义代码片段

    VS - 工具 - 代码片段管理器 实现:propnotify 加 Tab 键 生成属性定义代码片段 (包含一个字段定义,一个属性get/set定义,其中set会触发属性值变更事件) <?xml ...

  9. Android_适配器(adapter)之SimpleAdapter

    概述 SimpleAdapter是一种 简单的适配器,将静态数据映射到布局xml对应的视图上.它也是BaseAdapter的子类. SimpleAdapter数据映射的组件有3类(从官网api或Sim ...

  10. [Wireshark]_003_电子邮件抓包分析

    电子邮件是我们的生活工作中经常使用的一种服务,用来联系世界各地的朋友,客户.下面我们就用Wireshark对电子邮件进行抓包. 准备工作: 邮件客户端一款(Outlook,Foxmail,KooMai ...