@[TOC](nginx 手动离线安装 及依赖包安装(pcre+zlib+openssl))
博主 默语带您 Go to New World.
✍ 个人主页—— 默语 的博客??
《java 面试题大全》
《java 专栏》
?惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕?
《MYSQL从入门到精通》数据库是开发者必会基础之一~
? 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!?⌨
摘要:
本文介绍了使用源码编译安装 Nginx 的详细步骤及编译参数信息。首先,提到了必需的依赖包,包括 PCRE、Zlib 和 OpenSSL,并提供了它们的下载链接。随后,详细说明了编译环境的准备工作,包括检查和安装 gcc、g++、以及 make。接着,逐步介绍了如何安装各个依赖包以及 Nginx 的过程,包括解压、配置、编译和安装。最后,给出了启动 Nginx 的命令,并提示如何验证安装是否成功。
nginx:http://nginx.org/en/download.html (版本:nginx-1.20.1 tar.gz)
pcre:https://sourceforge.net/projects/pcre/files/pcre/8.45/(版本:pcre-8.45.tar.gz)
zlib:http://www.zlib.net/(版本:zlib-1.2.13.tar.gz)
oppenssl:https://www.openssl.org/source/(版本:openssl-1.1.0h.tar.gz)
可自行根据个人需要下载适合的依赖包
Pcre:是一个正则表达式库。(必须)
Zlib:是一个开源的数据压缩库,提供了对数据的无损压缩和解压功能。(必须)
Openssl:是一个开源的加密库,提供了各种加密算法和安全协议的实现。(必须)
本人把所有tar.gz包都放在 /usr/local/nginx目录下 ( 权限777 )
nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。
正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。
查看 gcc 版本
$ gcc -v$ gcc --version
查看 g++ 版本
$ g++ -v$ g++ --version
安装make:
yum -y install gcc automake autoconf libtool make
安装g++:
$ sudo yum install gcc g++# 通过下载列表中提供的地址下载安装包, 并安装
或者
命令:sudo yum install -y gcc-c++
gcc g++ 我这边离线安装问题比较多;大家自行尝试
离线版本:
阿里云盘下载地址:https://www.aliyundrive.com/s/VpQ3g4L6oub
提取码: sj94
1、安装pcre
解压:tar -zxvf pcre-8.34.tar.gz
进入解压目录:cd pcre-8.34
可要需要赋予权限 chmod 777 configure
配置:./configure
编译:make
安装:make install
如出现:
something went wrong bootstrapping makefile fragmentsfor automatic dependency tracking, If GNU make was not used, considerre-running the configure script with MAKE-"gmake" (or whatever isnecessary). You can also try re-running configure with the--disable-dependency tracking' option to at least be able to buildthe package (albeit without support for automatic dependency tracking)See config.log' for more details
把上面的make安装下就行了;安装make:
(各个版本pcre和pcre2下载网址:https://ftp.pcre.org/pub/pcre/)
2、安装OpenSSL
解压:tar -zxvf openssl-1.1.1g.tar.gz
进入解压目录:cd openssl-1.1.1g
可要需要赋予权限 chmod 777 config
配置:./config
编译:make
安装:make install
如果输入openssl version不显示版本号
在root用户下执行:
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
3、安装zlib
解压:tar -zxvf zlib-1.2.11.tar.gz
进入解压目录:cd zlib-1.2.11
可要需要赋予权限 chmod 777 configure
配置:./configure
编译:make
安装:make install
4.安装nginx
解压:tar -zxvf nginx-1.16.1.tar.gz
进入解压目录:cd nginx-1.16.1
接下来是重点!!!(下面配置这条命令在一行, 最好粘到文本编辑器里编辑一下)
配置:./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/nginxLibs/pcre-8.34 --with-zlib=/usr/local/nginxLibs/zlib-1.2.11 --with-openssl=/usr/local/nginxLibs/openssl-1.1.1g
或者(我用的下面的)
./configure --prefix=/data/soft/nginx/nginx/nginx-ywc --with-http_stub_status_module --with-http_ssl_module --with-pcre=/data/soft/nginx/nginx/pcre-8.45 --with-zlib=/data/soft/nginx/nginx/zlib-1.3.1 --with-openssl=/data/soft/nginx/nginx/openssl-1.1.0l
这段代码是在配置nginx编译安装的命令。具体解释如下:
/usr/local/nginx/nginx 这是一个新的路径
--sbin-path
: 指定nginx可执行文件的路径。--conf-path
: 指定nginx配置文件的路径。--pid-path
: 指定nginx进程ID文件的路径。--with-http_ssl_module
: 启用HTTP SSL模块,使nginx支持HTTPS。--with-pcre
: 指定PCRE库的路径,PCRE是Perl Compatible Regular Expressions的缩写,用于nginx的正则表达式匹配。--with-zlib
: 指定Zlib库的路径,Zlib是用于数据压缩和解压的库,nginx用它来处理HTTP数据的压缩。--with-openssl
: 指定OpenSSL库的路径,OpenSSL用于实现SSL/TLS协议,从而使nginx支持HTTPS。 它指定了 Nginx 的可执行文件路径、配置文件路径、进程ID文件路径,并启用了 HTTP SSL 模块以支持 HTTPS。此外,它还指定了 PCRE、Zlib 和 OpenSSL 库的路径,这些库用于正则表达式匹配、数据压缩和解压、以及实现 SSL/TLS 协议,从而完善了 Nginx 的功能。
(查看若有错误去最下边常见错误找)
编译:make
安装:make install
安装成功没有错误的话,你的 /usr/local/nginx/nginx 目录下如下:
5.启动nginx
/usr/local/nginx/nginx./sbin/nginx
启动
如果都没有错误,浏览器访问 服务器ip:80 端口,出现"Welcome to nginx!",恭喜你安装成功!
./sbin/nginx -V #查看是否依赖
记得开放防火墙的端口:
查看防火墙开启的端口
firewall-cmd --list-ports
firewall-cmd --state
查看防火墙状态
为防火墙开启端口,可以使用以下命令添加端口规则
firewall-cmd --zone=public --add-port=YOUR_PORT_NUMBER/TCP --permanent
重新加载firewalld以使更改生效:
firewall-cmd --reload
一次性添加多个端口规则
firewall-cmd --zone=public --add-port=PORT1/TCP --add-port=PORT2/TCP --add-port=PORT3/UDP --permanent
案例demo:
sudo firewall-cmd --zone=public --add-port=8761/tcp --permanent
注意事项及常见错误解决方法:
1.安装nginx,执行配置一步后出现错误如下错误:(实踩大坑!!!)
src/core/ngx_regex.h:15:18: error: pcre.h
src/core/ngx_regex.h:24: error: expected specifier-qualifier-list before ‘pcre’
解决方法: 此时很有可能是pcre版本太高或者你装的是pcre2,去上边手动下载换低版本pcre即可.
2.nginx完全卸载
find / -name nginx 或者 find / -name nginx*
rm -rf 上边找到nginx路径
3.pcre卸载
在pcre解压目录下执行: sudo make uninstall
然后rm -rf pcre解压目录(或者直接手动右键删除 你懂的 简单暴力0.0)
总结:
本文提供了从源码编译安装 Nginx 的全面指南,涵盖了准备工作、依赖包的下载和安装、以及 Nginx 的配置和启动过程。通过详细说明每个步骤和命令的含义,读者可以轻松地跟随指南完成 Nginx 的安装。同时,提供了解决常见错误的方法,帮助读者顺利完成安装并验证是否成功。
参考博客:1,2
?? 希望本文能够给您带来一定的帮助?文章粗浅,敬请批评指正!??
如对本文内容有任何疑问、建议或意见,请联系作者,作者将尽力回复并改进?;(联系微信:Solitudemind )
点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。