关于openresty自动编译的nginx动态链接了openssl库的咨询

379 views
Skip to first unread message

Sun Hao

unread,
Dec 20, 2016, 4:38:57 AM12/20/16
to openresty
大家好,
      因为系统中的openssl库非常老且因兼容原因无法更新,而我希望使用最新的库,因此我在编译的时候指定了openssl的src目录,但是编译出来的nginx会动态链接到系统的libcrypt.so。我看了下openresty自动编译的openssl只编译了static库,这样的话nginx的链接里不应该出现libcrypt的动态库链接才对,这个是正常的么?我还需要手动编译一个新版的openssl动态库扔LDPATH里?

./configure --prefix=/home/apache/newweb -j6 --with-openssl=/home/apache/setup/openssl-1.0.2j/ --with-pcre-jit --with-pcre=/home/apache/setup/pcre-8.39/ --with-zlib=/home/apache/setup/zlib-1.2.8/

apache@WXZB-01:~/newweb> ldd nginx/sbin/nginx
 linux
-vdso.so.1 =>  (0x00007fff4b5ff000)
 libdl
.so.2 => /lib64/libdl.so.2 (0x00007f867fbfd000)
 libpthread
.so.0 => /lib64/libpthread.so.0 (0x00007f867f9df000)
 libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f867f7a4000)
 libluajit
-5.1.so.2 => /home/apache/newweb/luajit/lib/libluajit-5.1.so.2 (0x00007f867f52d000)
 libm
.so.6 => /lib64/libm.so.6 (0x00007f867f2b3000)
 libc
.so.6 => /lib64/libc.so.6 (0x00007f867ef3c000)
 
/lib64/ld-linux-x86-64.so.2 (0x00007f867fe3d000)
 libgcc_s
.so.1 => /lib64/libgcc_s.so.1 (0x00007f867ed26000)


谢谢!

Kwanhur Huang

unread,
Dec 20, 2016, 8:16:41 AM12/20/16
to open...@googlegroups.com, Kwanhur Huang
可增加编译参数指定库路径
--with-ld-opt="-L /path/to/openssl/lib/"

--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
归档: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
教程: http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html

Sun Hao

unread,
Dec 20, 2016, 8:31:34 AM12/20/16
to openresty, huang_...@163.com
我其实是想问为什么 openresty 只编译了静态的 openssl 库但是最终却动态链接了 libcrypt.so ?这里面是不是有什么问题? 当前最新 稳定版的 openresty

目前只能先仿着脚本里的编译参数自己重编一个 新版openssl 的so 扔链接路径里先用着。

roid...@gmail.com

unread,
Dec 21, 2016, 12:11:12 AM12/21/16
to openresty, huang_...@163.com
Hi,
libssl.so.1.0.0 => /usr/local/openresty/openssl/lib/libssl.so.1.0.0 (0x00007f3aa9592000)
libcrypto.so.1.0.0 => /usr/local/openresty/openssl/lib/libcrypto.so.1.0.0 (0x00007f3aa9141000)
此两库才是openssl的。
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f3aa9ff0000)
此库libcrypt.so.与openssl的libcrypto.so.1.0.0库是不同的,有个O的差别。

Sun Hao

unread,
Dec 21, 2016, 1:09:35 AM12/21/16
to openresty, huang_...@163.com
thx!
是我疏忽了,libcrypt.so是glibc中的不是openssl的。。。。
nginx -V确认新版的openssl已经编译进去了。
Reply all
Reply to author
Forward
0 new messages