nginx 安装环境
nginx 是 C 语言开发, 建议在 Linux 上运行, 本教程使用 Centos6.5 作为安装环境.
gcc
安装 nginx 需要先将官网下载的源码进行编译, 编译依赖 gcc 环境, 如果没有 gcc 环境, 需要安装 gcc:yum install gcc-c++
会出现# yum 安装软件时出现 is this ok [y/d/n]
y 下载安装
d 只下载不安装
n 不安装
PCRE
PCRE(Perl Compatible Regular Expressions) 是一个 Perl 库, 包括 perl 兼容的正则表达式库. nginx 的 http 模块使用 pcre 来解析正则表达式, 所以需要在 Linux 上安装 pcre 库.
yum install -y pcre pcre-devel
注: pcre-devel 是使用 pcre 开发的一个二次开发库. nginx 也需要此库.
zlib
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip, 所以需要在 Linux 上安装 zlib 库.
- yum install -y zlib zlib-devel
- openssl
OpenSSL 是一个强大的安全套接字层密码库, 囊括主要的密码算法, 常用的密钥和证书封装管理功能及 SSL 协议, 并提供丰富的应用程序供测试或其它目的使用.
nginx 不仅支持 http 协议, 还支持 https(即在 ssl 协议上传输 http), 所以需要在 Linux 安装 openssl 库.
- yum install -y openssl openssl-devel
- [root@Nigux ~]# yum install gcc-c++
已加载插件: fastestmirror, langpacks
/var/run/yum.pid 已被锁定, PID 为 9006 的另一个程序正在运行.
Another App is currently holding the yum lock; waiting for it to exit...
另一个应用程序是: PackageKit
内存: 51 M RSS (396 MB VSZ)
已启动: Sun Jul 28 01:05:14 2019 - 00:19 之前
状态 : 睡眠中, 进程 ID:9006
Another App is currently holding the yum lock; waiting for it to exit...
另一个应用程序是: PackageKit
内存: 51 M RSS (396 MB VSZ)
已启动: Sun Jul 28 01:05:14 2019 - 00:21 之前
状态 : 睡眠中, 进程 ID:9006
- Loading mirror speeds from cached hostfile
- * base: mirrors.163.com
- * extras: mirrors.163.com
- * updates: mirrors.163.com
- base | 3.6 kB 00:00:00
- extras | 3.4 kB 00:00:00
- updates | 3.4 kB 00:00:00
正在解决依赖关系
--> 正在检查事务
---> 软件包 gcc-c++.x86_64.0.4.8.5-36.el7_6.2 将被 安装
--> 正在处理依赖关系 libstdc++-devel = 4.8.5-36.el7_6.2, 它被软件包 gcc-c++-4.8.5-36.el7_6.2.x86_64 需要
--> 正在处理依赖关系 libstdc++ = 4.8.5-36.el7_6.2, 它被软件包 gcc-c++-4.8.5-36.el7_6.2.x86_64 需要
--> 正在处理依赖关系 gcc = 4.8.5-36.el7_6.2, 它被软件包 gcc-c++-4.8.5-36.el7_6.2.x86_64 需要
--> 正在检查事务
---> 软件包 gcc.x86_64.0.4.8.5-36.el7_6.2 将被 安装
--> 正在处理依赖关系 libgomp = 4.8.5-36.el7_6.2, 它被软件包 gcc-4.8.5-36.el7_6.2.x86_64 需要
--> 正在处理依赖关系 cpp = 4.8.5-36.el7_6.2, 它被软件包 gcc-4.8.5-36.el7_6.2.x86_64 需要
--> 正在处理依赖关系 libgcc>= 4.8.5-36.el7_6.2, 它被软件包 gcc-4.8.5-36.el7_6.2.x86_64 需要
--> 正在处理依赖关系 glibc-devel>= 2.2.90-12, 它被软件包 gcc-4.8.5-36.el7_6.2.x86_64 需要
---> 软件包 libstdc++.x86_64.0.4.8.5-36.el7 将被 升级
---> 软件包 libstdc++.x86_64.0.4.8.5-36.el7_6.2 将被 更新
---> 软件包 libstdc++-devel.x86_64.0.4.8.5-36.el7_6.2 将被 安装
--> 正在检查事务
---> 软件包 cpp.x86_64.0.4.8.5-36.el7_6.2 将被 安装
---> 软件包 glibc-devel.x86_64.0.2.17-260.el7_6.6 将被 安装
--> 正在处理依赖关系 glibc-headers = 2.17-260.el7_6.6, 它被软件包 glibc-devel-2.17-260.el7_6.6.x86_64 需要
--> 正在处理依赖关系 glibc = 2.17-260.el7_6.6, 它被软件包 glibc-devel-2.17-260.el7_6.6.x86_64 需要
--> 正在处理依赖关系 glibc-headers, 它被软件包 glibc-devel-2.17-260.el7_6.6.x86_64 需要
---> 软件包 libgcc.x86_64.0.4.8.5-36.el7 将被 升级
---> 软件包 libgcc.x86_64.0.4.8.5-36.el7_6.2 将被 更新
---> 软件包 libgomp.x86_64.0.4.8.5-36.el7 将被 升级
---> 软件包 libgomp.x86_64.0.4.8.5-36.el7_6.2 将被 更新
--> 正在检查事务
---> 软件包 glibc.x86_64.0.2.17-260.el7 将被 升级
--> 正在处理依赖关系 glibc = 2.17-260.el7, 它被软件包 glibc-common-2.17-260.el7.x86_64 需要
---> 软件包 glibc.x86_64.0.2.17-260.el7_6.6 将被 更新
---> 软件包 glibc-headers.x86_64.0.2.17-260.el7_6.6 将被 安装
--> 正在处理依赖关系 kernel-headers>= 2.2.1, 它被软件包 glibc-headers-2.17-260.el7_6.6.x86_64 需要
--> 正在处理依赖关系 kernel-headers, 它被软件包 glibc-headers-2.17-260.el7_6.6.x86_64 需要
--> 正在检查事务
---> 软件包 glibc-common.x86_64.0.2.17-260.el7 将被 升级
---> 软件包 glibc-common.x86_64.0.2.17-260.el7_6.6 将被 更新
---> 软件包 kernel-headers.x86_64.0.3.10.0-957.21.3.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
=======================================================================================
Package 架构 版本 源 大小
=======================================================================================
正在安装:
gcc-c++ x86_64 4.8.5-36.el7_6.2 updates 7.2 M
为依赖而安装:
- cpp x86_64 4.8.5-36.el7_6.2 updates 5.9 M
- gcc x86_64 4.8.5-36.el7_6.2 updates 16 M
- glibc-devel x86_64 2.17-260.el7_6.6 updates 1.1 M
- glibc-headers x86_64 2.17-260.el7_6.6 updates 684 k
- kernel-headers x86_64 3.10.0-957.21.3.el7 updates 8.0 M
- libstdc++-devel x86_64 4.8.5-36.el7_6.2 updates 1.5 M
为依赖而更新:
- glibc x86_64 2.17-260.el7_6.6 updates 3.7 M
- glibc-common x86_64 2.17-260.el7_6.6 updates 12 M
- libgcc x86_64 4.8.5-36.el7_6.2 updates 102 k
- libgomp x86_64 4.8.5-36.el7_6.2 updates 158 k
- libstdc++ x86_64 4.8.5-36.el7_6.2 updates 305 k
事务概要
=======================================================================================
安装 1 软件包 (+6 依赖软件包)
升级 ( 5 依赖软件包)
总计: 56 M
总下载量: 41 M
- Is this ok [y/d/N]: y
- Downloading packages:
警告:/var/cache/yum/x86_64/7/updates/packages/cpp-4.8.5-36.el7_6.2.x86_64.rpm: 头 V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
cpp-4.8.5-36.el7_6.2.x86_64.rpm 的公钥尚未安装
- (1/7): cpp-4.8.5-36.el7_6.2.x86_64.rpm | 5.9 MB 00:00:04
- (2/7): gcc-c++-4.8.5-36.el7_6.2.x86_64.rpm | 7.2 MB 00:00:02
- (3/7): glibc-devel-2.17-260.el7_6.6.x86_64.rpm | 1.1 MB 00:00:00
- (4/7): glibc-headers-2.17-260.el7_6.6.x86_64.rpm | 684 kB 00:00:00
- (5/7): gcc-4.8.5-36.el7_6.2.x86_64.rpm | 16 MB 00:00:08
- (6/7): libstdc++-devel-4.8.5-36.el7_6.2.x86_64.rpm | 1.5 MB 00:00:00
- (7/7): kernel-headers-3.10.0-957.21.3.el7.x86_64.rpm | 8.0 MB 00:00:02
- ---------------------------------------------------------------------------------------
总计 4.0 MB/s | 41 MB 00:10
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
用户 ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
软件包 : CentOS-release-7-6.1810.2.el7.CentOS.x86_64 (@anaconda)
- Running transaction check
- Running transaction test
- Transaction test succeeded
- Running transaction
- cpp.x86_64 0:4.8.5-36.el7_6.2
- gcc.x86_64 0:4.8.5-36.el7_6.2
- glibc-devel.x86_64 0:2.17-260.el7_6.6
- glibc-headers.x86_64 0:2.17-260.el7_6.6
- kernel-headers.x86_64 0:3.10.0-957.21.3.el7
- libstdc++-devel.x86_64 0:4.8.5-36.el7_6.2
- glibc.x86_64 0:2.17-260.el7_6.6 glibc-common.x86_64 0:2.17-260.el7_6.6
- libgcc.x86_64 0:4.8.5-36.el7_6.2 libgomp.x86_64 0:4.8.5-36.el7_6.2
- libstdc++.x86_64 0:4.8.5-36.el7_6.2
- Loading mirror speeds from cached hostfile
- * base: mirrors.163.com
- * extras: mirrors.163.com
- * updates: mirrors.163.com
- Downloading packages:
- pcre-devel-8.32-17.el7.x86_64.rpm | 480 kB 00:00:06
- Running transaction check
- Running transaction test
- Transaction test succeeded
- Running transaction
- Loading mirror speeds from cached hostfile
- * base: mirrors.163.com
- * extras: mirrors.163.com
- * updates: mirrors.163.com
- Downloading packages:
- zlib-devel-1.2.7-18.el7.x86_64.rpm | 50 kB 00:00:01
- Running transaction check
- Running transaction test
- Transaction test succeeded
- Running transaction
- Loading mirror speeds from cached hostfile
- * base: mirrors.163.com
- * extras: mirrors.163.com
- * updates: mirrors.163.com
- keyutils-libs-devel x86_64 1.5.8-3.el7 base 37 k
- krb5-devel x86_64 1.15.1-37.el7_6 updates 271 k
- libcom_err-devel x86_64 1.42.9-13.el7 base 31 k
- libkadm5 x86_64 1.15.1-37.el7_6 updates 178 k
- libselinux-devel x86_64 2.5-14.1.el7 base 187 k
- libsepol-devel x86_64 2.5-10.el7 base 77 k
- libverto-devel x86_64 0.2.5-4.el7 base 12 k
- krb5-libs x86_64 1.15.1-37.el7_6 updates 803 k
- openssl-libs x86_64 1:1.0.2k-16.el7_6.1 updates 1.2 M
- Downloading packages:
- (1/8): keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm | 37 kB 00:00:01
- (2/8): libcom_err-devel-1.42.9-13.el7.x86_64.rpm | 31 kB 00:00:01
- (3/8): libsepol-devel-2.5-10.el7.x86_64.rpm | 77 kB 00:00:00
- (4/8): libverto-devel-0.2.5-4.el7.x86_64.rpm | 12 kB 00:00:00
- (5/8): libkadm5-1.15.1-37.el7_6.x86_64.rpm | 178 kB 00:00:01
- (6/8): krb5-devel-1.15.1-37.el7_6.x86_64.rpm | 271 kB 00:00:01
- (7/8): libselinux-devel-2.5-14.1.el7.x86_64.rpm | 187 kB 00:00:01
- (8/8): openssl-devel-1.0.2k-16.el7_6.1.x86_64.rpm | 1.5 MB 00:00:00
- ---------------------------------------------------------------------------------------
- Running transaction check
- Running transaction test
- Transaction test succeeded
- Running transaction
- keyutils-libs-devel.x86_64 0:1.5.8-3.el7 krb5-devel.x86_64 0:1.15.1-37.el7_6
- libcom_err-devel.x86_64 0:1.42.9-13.el7 libkadm5.x86_64 0:1.15.1-37.el7_6
- libselinux-devel.x86_64 0:2.5-14.1.el7 libsepol-devel.x86_64 0:2.5-10.el7
- libverto-devel.x86_64 0:0.2.5-4.el7
- [root@Nigux ~]# rm -rf *
- [root@Nigux ~]# rm -rf /usr/local/nginx/
- [root@Nigux ~]# rm -rf /var/temp/
- tar -zxvf nginx-1.8.0.tar.gz
- cd nginx-1.8.0
- ls
- [root@Nigux nginx-1.8.0]# ls
- auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
- ./configure \
- --prefix=/usr/local/nginx \
- --pid-path=/var/run/nginx/nginx.pid \
- --lock-path=/var/lock/nginx.lock \
- --error-log-path=/var/log/nginx/error.log \
- --http-log-path=/var/log/nginx/access.log \
- --with-http_gzip_static_module \
- --http-client-body-temp-path=/var/temp/nginx/client \
- --http-proxy-temp-path=/var/temp/nginx/proxy \
- --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
- --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
- --http-scgi-temp-path=/var/temp/nginx/scgi
- [root@Nigux nginx-1.8.0]# cd /usr/local/
- [root@Nigux local]# ll
- [root@Nigux local]# cd nginx
- [root@Nigux nginx]# ls
- conf HTML sbin
- [root@Nigux nginx]# cd sbin
- [root@Nigux sbin]# ./nginx
- [root@Nigux sbin]# ps aux|grep
- [root@Nigux sbin]# ps aux|grep nginx
- root 12518 0.0 0.0 24884 772 ? Ss 02:01 0:00 nginx: master process ./nginx
- nobody 12520 0.0 0.1 27396 1532 ? S 02:01 0:00 nginx: worker process
- root 12616 0.0 0.0 112724 992 pts/0 R+ 02:04 0:00 grep --color=auto nginx
- [root@Nigux sbin]#
- cd /usr/local/nginx/sbin
- ./nginx -s stop
- cd /usr/local/nginx/sbin
- ./nginx -s quit
- ./nginx -s quit
- ./nginx
来源: http://www.jianshu.com/p/97fb55817df7