关于 安装nginx的一些openssl笔记

时间:2021-11-02 13:13:08

1、openssl 与nginx 版本不相容真是一个大问题。

有时候我们下载的是 openssl 1.1.0e版本的。却 openssl version时 得到了系统自带的 受保护的不能删除的 openssl 1.0.1e版本的。原因是配置 出错,系统编译器无法找到 一些重要的配置文件等 。

2、 openssl配置 编译安装之后 需要做的 一些配置: 

   

   1)  、ln -s /usr/local/openssl/include/openssl   /usr/include/openssl  

这是为了 给/usr/openssl/include/openssl 创建一个软链接并将其放在 /usr/include目录下 ,软链接叫openssl,就像windows中用来的 快捷方式,eclipse桌面图标就能进到eclipse工作台,就像c++的指针(java的对象的引用)一样,不同就是C++指针(java引用)指向的是多个对象(属性和方法),但这里是  多个软链接”可以“指向同一个源文件,这这些软链接占很少的内存,具有与源文件一样的功能。以下同理

 

2)、ln -s /usr/local/openssl/bin/openssl  /usr/bin/openssl

 

3)、ln -s /usr/local/openssl/lib/libssl.so.1.1  /usr/local/lib64/libssl.so

问题: erro while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory     编译器找不到这个库文件 : libssl.so.1.1

原因是: 在64位机器上 nginx读取的ssl文件 /usr/local/lib64/libssl.so.1.1文件,但是我们安装openssl 时(./config --prefix=/usr/local/openssl),libssl.so.1.1库文件默认安装在了 /usr/local/openssl/lib{/libssl.so.1.1}目录下了。 但是默认情况下,编译器只会搜索 、使用/lib和/usr/lib这两个目录下的库文件,不然就找不到,那就报错(某某库文件不存在或者找不到)。我们就要操作 ”3)“的命令,在/usr/local上创建软链接 libssl.so     指向——>/usr/local/openssl/lib/libssl.so.1.1,这样 nginx安装编译的时候找的到 openssl里的库文件了。

4)  echo "/usr/local/openssl/lib" >> /etc/ld.so.conf

注意:   /etc/ld.so.conf中 ld.so.conf文件 记录了 编译时使用的动态链接库的路径。由于上面说了 编译器只会能使用 /lib和/usr/lib这两个目录下的库文件。这里我们可以将 openssl下的lib路径 添加到 /ld.so.conf下,当编译时,自动到 /ld.so.conf文件上去找 库文件的路径。(有点像一个缓存区,也有点像windows的快捷方式)

 5)、 ldconfig -v 

 ldconfig是一个程序,位于 /sbin下,root使用的. 英语好 可以在man ldconfig上查看详细信息。

作用: 将/etc/ld.so.conf列出的路径下的库文件 缓存到 /etc/ld.so.cache 以供使用(应该是像nginx编译的时候就会到/etc/ld.so.cache文件下去找 那些库文件)。 因此,当你安装完一些库文件时,例如刚装完 zlib openssl或者修改ld.so.conf增加了 新的库文件的路径后,需要运行一下 /sbin/ldcinfig 使所有的库文件都被缓存到 ld.so.cache中。如果没运行这个程序 ldconf,编译的时候报错-----------缺少xxxx库。

  6)、openssl version -v 

我本来只为写给自己看的,但发现还有人看,那就补充一下: 

工具: 一个远程登陆库房服务器的工具(客户端)secureCRT

1、从官网下载最新版本openssl-1.1.0e.tar.gz 到window上

2、将包拖到 CRT的SFTP窗口进行上传,默认出现在/root目录下

3、tar -zxvf openssl-1.1.0e.tar.gz   (在/root目录下解压openssl包)

4、mv openssl-1.1.0e /opt (将解压后的 openssl移到/opt目录上)

5、cd /opt/openssl-1.1.0e  (切换目录到 /openssl-1.1.0e ,就像我windows上习惯将应用程序放在D盘,配置数据等放在E盘)

6、./config --prefix=/usr/local/openssl   (配置,配置的东西全放在 /openssl目录下,配置产生的目录为:/bin    /include  /lib  /share   /ssl这五个目录)

7、 make (编译,这时候不知道电脑屏幕在动  还是人在动 还是文字在动了,很久)          

8、make install  (编译安装)     注意:检查编译程序、安装文件是否成功--->echo +一个牛逼的符号

9、最后 就按之前写的   1、2、3、4、5、6一直走下去就ok了。

如下图

关于 安装nginx的一些openssl笔记