如何使用Apache2.2.9中的mod_ssl将openssl 0.9.8升级到1.0.2

如何使用Apache2.2.9中的mod_ssl将openssl 0.9.8升级到1.0.2,apache,autoconf,suse,php-openssl,mod-ssl,Apache,Autoconf,Suse,Php Openssl,Mod Ssl,我被要求在SUSEE11SP3中使用openssl 1.0.2重新编译mo_ssl。 不过,我是Suse的新手,但对linux略知一二 操作系统:Suse SE11SP3 Openssl:0.9.8j由于Alvits的帮助, 我可以第一次用stackoverflow写下这个答案 !!阿尔维茨的荣誉 我最初的任务是,我需要在本地目录中安装不同版本的openssl,这与系统openssl不同。但是我喜欢制作mod_ssl,它链接到更新的openssl 首先,我安装了带有共享选项的openssl,我

我被要求在SUSEE11SP3中使用openssl 1.0.2重新编译
mo_ssl
。 不过,我是Suse的新手,但对linux略知一二

  • 操作系统:Suse SE11SP3
  • Openssl:0.9.8j由于Alvits的帮助, 我可以第一次用stackoverflow写下这个答案

    !!阿尔维茨的荣誉

    我最初的任务是,我需要在本地目录中安装不同版本的openssl,这与系统openssl不同。但是我喜欢制作mod_ssl,它链接到更新的openssl

    首先,我安装了带有共享选项的openssl,我最初忘记了它,并且没有创建mod_ssl。所以小心别忘了

    cd openssl_source_direcotry
    ./config -fPIC shared --prefix=/PREFIX/openssl --openssldir=/PREFIX/openssl
    make 
    make test
    make install
    
    下一步,我添加了一些环境变量。前缀是我的本地目录。 安装时请使用不同的名称而不是前缀

    export LIBS=-ldl
    export LD_LIBRARY_PATH="/PREFIX/openssl/lib"
    export LDFLAGS="-L/PREFIX/openssl"
    export CPPFLAGS="-I/PREFIX/openssl/include/openssl" 
    export CFLAGS="-Wl,-rpath=/PREFIX/openssl/lib:/usr/lib -I/PREFIX/openssl/include/openssl"
    
    下一步是重新编译apache服务器。我假设您的服务器上已经安装了apache服务器

    ./configure --prefix=/PREFIX/apache22 --with-apr=/PREFIX/apache22/bin --with-apr-util=/PREFIX/apache22/bin --enable-so --enable-ssl=shared -with-ssl=/PREFIX/openssl --enable-module=shared CC=/usr/bin/gcc
    make install
    
    接下来,转到apache22/modules以确认mod_ssl.so是否正确链接

    ldd mod_ssl.so 
    
            linux-vdso.so.1 =>  (0x00007fff823ff000)
            libssl.so.1.0.0 => /PREFIX/openssl/lib/libssl.so.1.0.0 (0x00007fb3b32d4000)
            libcrypto.so.1.0.0 => /PREFIX/openssl/lib/libcrypto.so.1.0.0 (0x00007fb3b2e8c000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb3b2c3e000)
            libc.so.6 => /lib64/libc.so.6 (0x00007fb3b28c7000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007fb3b26c2000)
            /lib64/ld-linux-x86-64.so.2 (0x00007fb3b377d000)
    

    再打一次电话,我真的很感谢阿尔维茨的帮助。没有他的帮助,我走不了这么远

    这非常有用,在重新编译apache之前,请确保将apache清理为“make clean”


    将apache重新编译为
    清除、配置、安装的过程

    您是否尝试过设置
    LDFLAGS=-L/PREFIX/openssl
    ?感谢您的快速回复。对我试过了。没有成功。请告诉链接器您有首选路径。请尝试导出CPPFLAGS=“-Wl,-rpath=/PREFIX/openssl:/usr/lib-I/PREFIX/include/openssl”。阿尔维茨,非常感谢您的回复。我会试试,然后告诉你。我有个打字错误。它应该是
    CFLAGS
    ,而不是
    CPPFLAGS
    。我正试图用最新的openssl重新编译apache,第二步遇到了问题,我的apache2位于
    /etc/apache2
    ,但它没有
    bin
    目录,我运行了
    sudo find/-name apache2-type d
    命令并验证了该命令的结果,但是
    find
    结果没有
    apache2/bin
    目录,您能告诉我在哪里可以找到
    apache2/bin
    的实际位置吗?
    cd openssl_source_direcotry
    ./config -fPIC shared --prefix=/PREFIX/openssl --openssldir=/PREFIX/openssl
    make 
    make test
    make install
    
    export LIBS=-ldl
    export LD_LIBRARY_PATH="/PREFIX/openssl/lib"
    export LDFLAGS="-L/PREFIX/openssl"
    export CPPFLAGS="-I/PREFIX/openssl/include/openssl" 
    export CFLAGS="-Wl,-rpath=/PREFIX/openssl/lib:/usr/lib -I/PREFIX/openssl/include/openssl"
    
    ./configure --prefix=/PREFIX/apache22 --with-apr=/PREFIX/apache22/bin --with-apr-util=/PREFIX/apache22/bin --enable-so --enable-ssl=shared -with-ssl=/PREFIX/openssl --enable-module=shared CC=/usr/bin/gcc
    make install
    
    ldd mod_ssl.so 
    
            linux-vdso.so.1 =>  (0x00007fff823ff000)
            libssl.so.1.0.0 => /PREFIX/openssl/lib/libssl.so.1.0.0 (0x00007fb3b32d4000)
            libcrypto.so.1.0.0 => /PREFIX/openssl/lib/libcrypto.so.1.0.0 (0x00007fb3b2e8c000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb3b2c3e000)
            libc.so.6 => /lib64/libc.so.6 (0x00007fb3b28c7000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007fb3b26c2000)
            /lib64/ld-linux-x86-64.so.2 (0x00007fb3b377d000)