前言
在 CentOS 7 上编译安装 Nginx 1.24.0 ,您可以按照以下步骤进行操作。
一、编译前准备
1.1、下载Nginx源代码
下载 Nginx 1.24.0 的源代码压缩包,并解压缩:
- 访问Nginx官网(http://nginx.org/),找到右下角的“download”链接,复制链接地址。
- 在Linux服务器中,使用wget命令下载Nginx的稳定版本,例如:
wget http://nginx.org/download/nginx-1.24.0.tar.gz
。
wget http://nginx.org/download/nginx-1.24.0.tar.gz
解压并进入源码目录:
- 使用tar命令解压下载的Nginx源码包,例如:
tar -zxvf nginx-1.24.0.tar.gz
。 - 改名
mv nginx-1.24.0 nginxSrc
- 进入解压后的源码目录,例如:
cd nginxSrc/
。
1.2、安装必要的编译工具和依赖项
在开始编译之前,确保您的系统已安装必要的编译工具和依赖项。在 CentOS 7 上,您可以使用以下命令安装这些工具:
[root@td66 local]# sudo yum install gcc-c++ pcre-devel zlib-devel make
已加载插件:fastestmirror
Determining fastest mirrors* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.bfsu.edu.cn
base | 3.6 kB 00:00:00
clickhouse-stable/signature | 833 B 00:00:00
clickhouse-stable/signature | 3.0 kB 00:00:00 !!!
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): docker-ce-stable/7/x86_64/primary_db | 140 kB 00:00:00
(2/4): extras/7/x86_64/primary_db | 254 kB 00:00:00
(3/4): clickhouse-stable/primary_db | 458 kB 00:00:02
(4/4): updates/7/x86_64/primary_db | 26 MB 00:00:04
软件包 1:make-3.82-24.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 gcc-c++.x86_64.0.4.8.5-44.el7 将被 安装
--> 正在处理依赖关系 libstdc++-devel = 4.8.5-44.el7,它被软件包 gcc-c++-4.8.5-44.el7.x86_64 需要
--> 正在处理依赖关系 libstdc++ = 4.8.5-44.el7,它被软件包 gcc-c++-4.8.5-44.el7.x86_64 需要
---> 软件包 pcre-devel.x86_64.0.8.32-17.el7 将被 安装
---> 软件包 zlib-devel.x86_64.0.1.2.7-21.el7_9 将被 安装
--> 正在处理依赖关系 zlib = 1.2.7-21.el7_9,它被软件包 zlib-devel-1.2.7-21.el7_9.x86_64 需要
--> 正在检查事务
---> 软件包 libstdc++.x86_64.0.4.8.5-36.el7 将被 升级
---> 软件包 libstdc++.x86_64.0.4.8.5-44.el7 将被 更新
---> 软件包 libstdc++-devel.x86_64.0.4.8.5-44.el7 将被 安装
---> 软件包 zlib.x86_64.0.1.2.7-18.el7 将被 升级
---> 软件包 zlib.x86_64.0.1.2.7-21.el7_9 将被 更新
--> 解决依赖关系完成依赖关系解决==============================================================================================================================================================================================================================================================================Package 架构 版本 源 大小
==============================================================================================================================================================================================================================================================================
正在安装:gcc-c++ x86_64 4.8.5-44.el7 base 7.2 Mpcre-devel x86_64 8.32-17.el7 base 480 kzlib-devel x86_64 1.2.7-21.el7_9 updates 50 k
为依赖而安装:libstdc++-devel x86_64 4.8.5-44.el7 base 1.5 M
为依赖而更新:libstdc++ x86_64 4.8.5-44.el7 base 306 kzlib x86_64 1.2.7-21.el7_9 updates 90 k事务概要
==============================================================================================================================================================================================================================================================================
安装 3 软件包 (+1 依赖软件包)
升级 ( 2 依赖软件包)总下载量:9.6 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/6): zlib-1.2.7-21.el7_9.x86_64.rpm | 90 kB 00:00:00
(2/6): zlib-devel-1.2.7-21.el7_9.x86_64.rpm | 50 kB 00:00:00
(3/6): libstdc++-4.8.5-44.el7.x86_64.rpm | 306 kB 00:00:00
(4/6): gcc-c++-4.8.5-44.el7.x86_64.rpm | 7.2 MB 00:00:01
(5/6): libstdc++-devel-4.8.5-44.el7.x86_64.rpm | 1.5 MB 00:00:01
(6/6): pcre-devel-8.32-17.el7.x86_64.rpm | 480 kB 00:00:06
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 1.6 MB/s | 9.6 MB 00:00:06
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在更新 : zlib-1.2.7-21.el7_9.x86_64 1/8 正在更新 : libstdc++-4.8.5-44.el7.x86_64 2/8 正在安装 : libstdc++-devel-4.8.5-44.el7.x86_64 3/8 正在安装 : gcc-c++-4.8.5-44.el7.x86_64 4/8 正在安装 : zlib-devel-1.2.7-21.el7_9.x86_64 5/8 正在安装 : pcre-devel-8.32-17.el7.x86_64 6/8 清理 : zlib-1.2.7-18.el7.x86_64 7/8 清理 : libstdc++-4.8.5-36.el7.x86_64 8/8 验证中 : gcc-c++-4.8.5-44.el7.x86_64 1/8 验证中 : libstdc++-4.8.5-44.el7.x86_64 2/8 验证中 : zlib-1.2.7-21.el7_9.x86_64 3/8 验证中 : pcre-devel-8.32-17.el7.x86_64 4/8 验证中 : libstdc++-devel-4.8.5-44.el7.x86_64 5/8 验证中 : zlib-devel-1.2.7-21.el7_9.x86_64 6/8 验证中 : zlib-1.2.7-18.el7.x86_64 7/8 验证中 : libstdc++-4.8.5-36.el7.x86_64 8/8 已安装:gcc-c++.x86_64 0:4.8.5-44.el7 pcre-devel.x86_64 0:8.32-17.el7 zlib-devel.x86_64 0:1.2.7-21.el7_9 作为依赖被安装:libstdc++-devel.x86_64 0:4.8.5-44.el7 作为依赖被升级:libstdc++.x86_64 0:4.8.5-44.el7 zlib.x86_64 0:1.2.7-21.el7_9
完毕!
二、编译安装
2.1、配置编译选项
进入 Nginx 源代码目录并运行configure脚本,可指定 Nginx 的安装目录以及使用的用户和组(可选),可指定所需的功能模块。
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-stream
这将配置Nginx以使用"/usr/local/nginx"作为安装目录,以及以"nginx"用户和用户组的身份运行。
[root@td66 nginxSrc]# ./configure --prefix=/usr/local/nginx --with-stream
checking for OS+ Linux 3.10.0-957.el7.x86_64 x86_64
checking for C compiler ... found+ using GNU C compiler+ gcc version: 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
checking for gcc -pipe switch ... found
checking for -Wl,-E switch ... found
checking for gcc builtin atomic operations ... found
..............
checking for poll() ... found
checking for /dev/poll ... not found
checking for kqueue ... not found
..............
checking for IP_TRANSPARENT ... found
checking for IP_BINDANY ... not found
checking for IP_BIND_ADDRESS_NO_PORT ... found
checking for IP_RECVDSTADDR ... not found
checking for IP_SENDSRCADDR ... not found
checking for IP_PKTINFO ... found
checking for IPV6_RECVPKTINFO ... found
checking for TCP_DEFER_ACCEPT ... found
checking for TCP_KEEPIDLE ... found
checking for TCP_FASTOPEN ... found
checking for TCP_INFO ... found
checking for accept4() ... found
................
checking for PCRE JIT support ... found
checking for zlib library ... found
creating objs/MakefileConfiguration summary+ using system PCRE library+ OpenSSL library is not used+ using system zlib librarynginx path prefix: "/usr/local/nginx"nginx binary file: "/usr/local/nginx/sbin/nginx"nginx modules path: "/usr/local/nginx/modules"nginx configuration prefix: "/usr/local/nginx/conf"nginx configuration file: "/usr/local/nginx/conf/nginx.conf"nginx pid file: "/usr/local/nginx/logs/nginx.pid"nginx error log file: "/usr/local/nginx/logs/error.log"nginx http access log file: "/usr/local/nginx/logs/access.log"nginx http client request body temporary files: "client_body_temp"nginx http proxy temporary files: "proxy_temp"nginx http fastcgi temporary files: "fastcgi_temp"nginx http uwsgi temporary files: "uwsgi_temp"nginx http scgi temporary files: "scgi_temp"
2.2、编译和安装
使用make命令编译 Nginx,并使用make install命令将 Nginx 安装到指定的目录。
[root@td66 nginxSrc]# make && make install
make -f objs/Makefile
make[1]: 进入目录“/usr/local/nginxSrc”
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I
2.3、启动 Nginx
cd /usr/local/nginx/sbin/
./nginx
2.4、停止 Nginx
cd /usr/local/nginx/sbin/
./nginx -s stop
2.5、验证安装
打开您的 Web 浏览器并访问服务器的 IP 地址或域名,您应该能够看到 Nginx 的欢迎页面。
总结
请注意,在实际操作中,可能会因服务器环境、Nginx版本等因素而有所不同。因此,建议在进行编译安装前,仔细阅读Nginx的官方文档和相关教程,以确保正确安装并配置Nginx。
此外,编译安装Nginx允许用户根据需要选择特定的模块和功能,从而实现更深入的使用和定制。然而,这也增加了安装的复杂性。如果只是为了快速部署和使用Nginx,可以考虑使用包管理器(如apt、yum等)来安装Nginx,这样可以更简便地完成安装过程。