当前位置首页 > Apache知识

apache安装mod_ssl.so出现undefinedsymbol:ssl_cmd_SSLPassPhraseDialog错

阅读次数:240 次  来源:admin  发布时间:

很久很久以前,安装Apache的时候,根本没想过将来的某一天会使用到ssl,所以也就没有安装那个模块,结果今天需要用到的时候,却无从下手了。

由于在安装Apache的时候,mod_ssl.so这个文件没有被安装,因此决定安装这个文件。安装的方法主要有两种:重新编译安装和加载安装模块。

安装方法1:简单,就是直接重新编译apache,然后加上–enable-ssl,这个方法就不多说了,这里主要介绍方法2。

安装方法2:动态安装。Apache有类似PHP那样动态加载模块的机制,首先使用了网上介绍比较多的方法安装:

注意:下文[apache]表示Apache的安装目录,[source]表示Apache源码目录。

1. 进入 [source]/modules/ssl

2. 执行 [apache]/bin/apxs -a -i -c mod_ssl.c

然后系统会提示安装成功,但是启动httpd的时候却会提示:

httpd: Syntax error on line 146 of [apache]/conf/httpd.conf: Cannot load modules/mod_ssl.so into server: [apache]/modules/mod_ssl.so: undefined symbol: ssl_cmd_SSLPassPhraseDialog

于是上网查了很久的资料,结果却不如人意。最终发现安装mod_ssl.so需要指定openssl的相关信息。

下面是正确的方法:

1. 进入[source]/modules/ssl

2.执行 [apache]/bin/apxs -a -i -c -L/usr/lib/openssl/engines/lib -c *.c -lcrypto -lssl -ldl

重启httpd即可。

总结:显然第二种方法是比较麻烦的,因此我郑重推荐使用第一种方法:重新编译apache,加上–enable-ssl选项。

上一篇:linux基础(6)-shell编程
下一篇:VMware12下安装linux