系统:centos7.3
宝塔版本:7.0.2安装Pure-Ftpd时失败,执行消息里面有如下信息
libpureftpd.a(libpureftpd_a-tls.o):在函数‘tls_create_new_context’中:
tls.c .text+0xc9):对‘SSL_CTX_set_options’未定义的引用
要解决此问题必须要有一定的linux相关知识,gcc编译参数,软连接,Makefile,否则下面的也不用看了。
分析问题:
通过之前的错误信息SSL_CTX_set_options...未定义的引用 分析可能是ssl相关的库没找到
后来查看了一下网上别人的配置脚本,其中有个--with-tls选项,是需要依赖openssl库的
可能是宝塔的ftp编译脚本默认添加,同时openssl库的安装路径不对
如果安装了openssl一般不会有这个问题,如果出现了,请看下面的
1.安装包默认下载到 ~/Pure-Ftpd
2.查看目录下生成的Makefile中的编译参数,找到下面一行
-L /usr/local/lib
表明默认搜索so库文件的目录在/usr/local/lib
再看引用的库
-lssl -lcrypto -lcrypt
可以知道有ssl和crypto和crypt三个库,看来就是这里出问题了。
首先在/lib64/下查找这三个so文件,发现都存在,于是软链接到/usr/local/lib目录
ln -s /lib64/libcrypt.so /usr/local/lib/libcrypt.so
ln -s /lib64/libcrypto.so /usr/local/lib/libcrypto.so
ln -s /lib64/libssl.so /usr/local/lib/libssl.so
然后手动编译一下
make -j8
不再报错,可以在宝塔面板重新安装FTP了
|
|