码迷,mamicode.com
首页 > Web开发 > 详细

apache安装mod_ssl.so 出现 undefined symbol: ssl_cmd_SSLPassPhraseDialog错误解决

时间:2017-03-23 11:33:51      阅读:3221      评论:0      收藏:0      [点我收藏+]

标签:源码   解决   symbol   dial   nbsp   syntax   lin   int   指定   

很久很久以前,安装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选项。

apache安装mod_ssl.so 出现 undefined symbol: ssl_cmd_SSLPassPhraseDialog错误解决

标签:源码   解决   symbol   dial   nbsp   syntax   lin   int   指定   

原文地址:http://www.cnblogs.com/wajika/p/6604002.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!