我尝试在 Apache 服务器中加载 php 模块,但出现了这个错误
httpd:/usr/local/apache/conf/httpd.conf 第 152 行语法错误:无法将 modules/libphp5.so 加载到服务器:/usr/local/apache/modules/libphp5.so:未定义符号:SSLv2_server_method
有任何想法吗?
系统:Debian 7.4 Linux 3.2.0-4-686-pae #1 SMP Debian 3.2.54-2 i686 GNU/Linux
PHP版本:5.5.11
OpenSSL 版本:1.0.1g
Apache 版本:2.4.9
所有程序都是从源代码编译和安装的
我的/etc/ld.so.conf
文件:
/usr/local/openssl/lib
/usr/local/mysql/lib
include /etc/ld.so.conf.d/*.conf
输出自ldd /urs/local/apache/modules/libphp5.so
:
linux-gate.so.1 => (0xb77c9000)
libcrypt.so.1 => /lib/i386-linux-gnu/i686/cmov/libcrypt.so.1 (0xb6e46000)
libresolv.so.2 => /lib/i386-linux-gnu/i686/cmov/libresolv.so.2 (0xb6e32000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xb6e28000)
libmysqlclient.so.18 => /usr/local/mysql/lib/libmysqlclient.so.18 (0xb6a83000)
libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xb6a59000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb6a40000)
libcrypto.so.1.0.0 => /usr/local/openssl/lib/libcrypto.so.1.0.0 (0xb6878000)
libssl.so.1.0.0 => /usr/local/openssl/lib/libssl.so.1.0.0 (0xb6813000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb67ed000)
libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xb67e9000)
libnsl.so.1 => /lib/i386-linux-gnu/i686/cmov/libnsl.so.1 (0xb67d2000)
libxml2.so.2 => /usr/lib/i386-linux-gnu/libxml2.so.2 (0xb667e000)
ibpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb66$
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb6500000)
/lib/ld-linux.so.2 (0xb77ca000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb6414000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb63f7000)
liblzma.so.5 => /lib/i386-linux-gnu/liblzma.so.5 (0xb63d0000)
如果您需要任何进一步的信息,请告诉我。
答案1
看起来您的 php5 模块可能动态链接到错误的 OpenSSL 库。
您可以检查ldd php5.so
库加载器如何解析来自 php5 模块的动态链接。
如果它链接到不正确的库,那么您必须检查您的库路径并确保 OpenSSL 1.0.1g 位于库路径中的目录中,并且该路径位于 Debianlibssl
包的库路径之前。
重新配置后,您可以运行ldconfig
来更新库搜索路径。