IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    openssl编译问题

    linuxphp@qq.com(keminar)发表于 2014-03-22 00:00:00
    love 0
    贵贵的博客 ( http://blog.linuxphp.org/ ) :

    openssl推荐编译安装,并且使用非系统默认目录,以防系统中有装二进制包,影响使用。

    以下为今天在不同系统中编译时apache,php遇到的各种错:

    1. libssl.a(s3_srvr.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC

    第一个是apache在64位系统下的错位,增加-fPIC no-gost no-shared no-zlib参数解决,参考http://www.apachelounge.com/viewtopic.php?t=4690

    2. ab.c:: undefined reference to `SSLv2_client_method'

    第二个是apache在使用openssl编译到系统默认目录时和自带openssl有冲突的,编译时使用非系统目录解决,为保证nginx正常使用--with-openssl=参数指定openssl源码目录

    3.xp_ssl.c:333: undefined reference to `SSLv2_client_method'

    第三个是PHP在debian平台的一个BUG,最早5.2时就已经有了并解决了,我用5.4发现还报错,对比文件发现是ifndef OPENSSL_NO_SSL2写成ifdef OPENSSL_NO_SSL2了,修改下编译OK,bug如下:https://bugs.php.net/patch-display.php?bug_id=54736&patch;=debian_patches_disable_SSLv2_for_openssl_1_0_0.patch&revision;=latest

    发一个最终的编译命令

    ./config --prefix=/data/opt/ssl --openssldir=/data/opt/ssl  -fPIC no-gost no-shared no-zlib
    make
    make install


沪ICP备19023445号-2号
友情链接