【linux】linux 报错:安装 nginx 时,make 报错解决方法

解决Nginx与OpenSSL版本冲突
本文解决了一个常见的Nginx安装问题,当使用OpenSSL 1.1.0版本时,Nginx在编译过程中会出现错误。文章详细介绍了如何下载并安装旧版本的OpenSSL(1.0.1o),以及如何正确配置Nginx以避免版本不兼容的问题。

目录

一、报错情况

二、解决方法

三、openssl旧版本下载和安装



一、报错情况

(1)输入命令,报错:

make


(2)具体报错:

make[1]: *** [objs/src/event/ngx_event_openssl.o] 错误 1
make[1]: 离开目录“/usr/local/nginx-1.1.10”
make: *** [build] 错误 2

(3)报错原因:

这是由于openssl版本错误原因导致:

The OpenSSL API has changed quite a bit in 1.1.0... thismeans that nginx needs some work to adapt.

OpenSSL API在1.1.0中发生了很大的变化。这意味着nginx 需要一些工作来适应。



二、解决方法

替换openssl的包为1.0.1的版本



三、openssl旧版本下载和安装

(1)新版本下载地址:点击前往官网下载


(2)旧版本下载地址:点击前往官网下载


(3)直接使用xftp删除之前安装的1.1.1a版本的openssl安装包,以及配置的路径:


(4)上传openssl-1.0.1o.tar.gz到/usr/local下:


(5)解压到/usr/local目录下,解压后删除压缩包:

cd /usr/local
sudo tar -vxf openssl-1.0.1o.tar.gz -C/usr/local


(6)prefix配置安装路径 :

cd openssl-1.0.1o
./config --prefix=/opt/ldkjdata/nginx/openssl-1.0.1o
make
make install

 


(7)此时,再进行nginx安装目录,再进行make命令操作,就可以成功了:

cd /usr/local/nginx-1.1.10
./configure --with-pcre=../pcre-8.42 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.0.1o --with-http_ssl_module --prefix=/opt/ldkjdata/nginx/nginx-1.1.10
make
make install

### Linux 环境下离线安装 Nginx `make` 命令报错解决方案 在Linux环境中离线安装Nginx遇到`make`命令报错的情况通常由缺少必要的编译工具或依赖库引起。为了成功完成Nginx的离线安装解决可能出现的错误,建议按照以下方法处理: #### 检查和准备开发环境 确保系统已经安装了基本的构建工具链以及PCRE、zlib 和 OpenSSL这些对于Nginx来说非常重要的外部库。如果是在完全离线的情况下操作,则需要提前下载好相应的源码包,并将其传输至目标机器。 由于无法在线获取资源,在离线模式下应当预先准备好所有必需的软件包,包括但不限于gcc编译器、make程序以及其他可能被使用的模块和支持功能所需的头文件和静态链接库[^2]。 #### 配置阶段常见问题及应对措施 当执行configure脚本可能会因为找不到某些特定的功能或者第三方模块而失败。此应该仔细阅读错误提示信息来判断具体缺失的部分是什么,并针对性地调整配置选项或是手动指定路径给configure参数以便能够找到所需组件的位置。 例如,可以通过设置--with-pcre=DIR这样的方式告知编译过程pcre库的具体位置;同理也可以为openssl和其他依赖项做相同的操作以避免因默认查找路径不正确而导致的问题发生。 #### 编译期间遇到Makefile相关错误 如果在调用`make`过程中出现了关于Makefile定义不当或者是语法上的失误所引发的一系列连锁反应式的警告乃至致命性的终止状况,那么就需要回到上一步重新审视configure的结果输出是否有异常之处存在——特别是那些带有“no”的检测结论往往意味着潜在的风险因素所在。 另外一种可能性就是版本兼容性方面存在问题,比如较新的GCC版本对C++标准的支持有所变化从而影响到了旧版Nginx代码中的部分实现细节。这要么考虑升级Nginx源码树使之适应现代编译环境的要求,要么尝试降级编译器到更早一点的稳定发行版试试看能否绕过此类障碍。 ```bash # 示例:检查已安装的gcc版本 gcc --version ``` #### 测试与验证 一旦解决了上述提到的各种可能导致`make`指令出错的因素之后就可以继续进行后续步骤直至最终顺利完成整个安装流程。最后不要忘记测试新部署的服务实例是否正常工作,这可通过启动Nginx服务来进行初步检验: ```bash /usr/local/nginx/sbin/nginx -t ``` 通过这种方式可以在不影响实际业务的前提下确认配置无误且服务器能按预期响应请求。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾三殇

觉得不错的话,打赏鼓励一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值