我正在尝试复制旧系统的服务器配置,该系统使用旧版本的 apache 和 php,特别是 apache 2.2.4,为了编译此版本的 apache,我必须安装 openssl 0.9.7(以避免编译 apache 时出现错误),当我尝试 ./apachectl start 时出现此错误:
httpd:/usr/local/apache/php/conf/httpd.conf 第 54 行语法错误:无法将 /usr/local/apache/php/modules/mod_ssl.so 加载到服务器:libssl.so.0.9.7:无法打开共享对象文件:没有此文件或目录
54 号线
LoadModule ssl_module modules/mod_ssl.so
mod_ssl.so 目录:
/usr/local/apache/php/modules
libssl.so.0.9.7 目录:
/usr/local/ssl/lib
我试过:
ln -s /usr/local/apache/php/modules/mod_ssl.so /usr/local/ssl/lib/libssl.so.0.9.7
和
ln -s /usr/local/apache/php/modules /usr/local/ssl/lib
但仍然出现上述相同的错误。
这是我的ldd /usr/local/apache/php/modules/mod_ssl.so output
:
linux-vdso.so.1 (0x00007ffcfe550000)
libssl.so.0.9.7 => not found
libcrypto.so.0.9.7 => not found
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe22a31d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe229f7e000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe22a765000)
openssl .so 文件的目录:
root@debian:/usr/local/ssl/lib# ls
libcrypto.a libcrypto.so.0 libssl.a libssl.so.0 modules
libcrypto.so libcrypto.so.0.9.7 libssl.so libssl.so.0.9.7 pkgconfig
答案1
对于大多数应用程序,此类文件的默认目录是/usr/lib/
,尝试将所有库移动到其中或创建如下符号链接:
sudo ln -s /usr/local/ssl/lib/libssl.so.0.9.7 /usr/lib/libssl.so.0.9.7
sudo ln -s /usr/local/ssl/lib/libcrypto.so.0.9.7 /usr/lib/libcrypto.so.0.9.7
如果这不起作用:
sudo vim /etc/ld.so.conf.d/libc.conf
改变路径
# libc default configuration
# /usr/local/lib
/usr/lib
和
sudo ldconfig