编译apache2.0.X带ssl模块出错?恳请解答

[入库:2005年9月21日] [更新:2007年3月24日]

本文简介:


看资料说apache2.0.X不用mod_ssl就能支持SSL了,所以我直接编译apache,配置如下:

./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-ssl=shared

配置过程没有错,但make时就出问题了,错误提示如下
In file included from /usr/include/openssl/ssl.h:179,
from mod_ssl.h:125,
from mod_ssl.c:60:
/usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory
In file included from /usr/include/openssl/ssl.h:179,
from mod_ssl.h:125,
from mod_ssl.c:60:
/usr/include/openssl/kssl.h:132: parse error before "krb5_enctype"
/usr/include/openssl/kssl.h:134: parse error before "FAR"
/usr/include/openssl/kssl.h:135: parse error before '}' token
/usr/include/openssl/kssl.h:147: parse error before "kssl_ctx_setstring"
/usr/include/openssl/kssl.h:147: parse error before '*' token
/usr/include/openssl/kssl.h:148: parse error before '*' token
/usr/include/openssl/kssl.h:149: parse error before '*' token
/usr/include/openssl/kssl.h:149: parse error before '*' token
/usr/include/openssl/kssl.h:150: parse error before '*' token
/usr/include/openssl/kssl.h:151: parse error before "kssl_ctx_setprinc"
/usr/include/openssl/kssl.h:151: parse error before '*' token
/usr/include/openssl/kssl.h:153: parse error before "kssl_cget_tkt"
/usr/include/openssl/kssl.h:153: parse error before '*' token
/usr/include/openssl/kssl.h:155: parse error before "kssl_sget_tkt"
/usr/include/openssl/kssl.h:155: parse error before '*' token
/usr/include/openssl/kssl.h:157: parse error before "kssl_ctx_setkey"
/usr/include/openssl/kssl.h:157: parse error before '*' token
/usr/include/openssl/kssl.h:159: parse error before "context"
/usr/include/openssl/kssl.h:160: parse error before "kssl_build_principal_2"
/usr/include/openssl/kssl.h:160: parse error before "context"
/usr/include/openssl/kssl.h:163: parse error before "kssl_validate_times"
/usr/include/openssl/kssl.h:163: parse error before "atime"
/usr/include/openssl/kssl.h:165: parse error before "kssl_check_authent"
/usr/include/openssl/kssl.h:165: parse error before '*' token
/usr/include/openssl/kssl.h:167: parse error before "enctype"
In file included from mod_ssl.h:125,
from mod_ssl.c:60:
/usr/include/openssl/ssl.h:909: parse error before "KSSL_CTX"
/usr/include/openssl/ssl.h:909: warning: no semicolon at end of struct or union
/usr/include/openssl/ssl.h:931: parse error before '}' token
make[4]: *** [mod_ssl.slo] Error 1
make[4]: Leaving directory `/root/tools/apache/httpd-2.0.48/modules/ssl'
make[3]: *** [shared-build-recursive] Error 1
make[3]: Leaving directory `/root/tools/apache/httpd-2.0.48/modules/ssl'
make[2]: *** [shared-build-recursive] Error 1
make[2]: Leaving directory `/root/tools/apache/httpd-2.0.48/modules'
make[1]: *** [shared-build-recursive] Error 1
make[1]: Leaving directory `/root/tools/apache/httpd-2.0.48'
make: *** [all-recursive] Error 1

望大虾解答,同时希望能得到在apache2下配置SSL相关方法的指点,不胜感激.

注:我换了几个版本的apache2.0都出现相同的错误,说明不是源码本身的问题

 rockwell 回复于:2003-12-03 11:00:09
我也有同样的错误!!
make[4]: *** [mod_ssl.slo] Error 1
make[4]: Leaving directory `/root/httpd-2.0.47/modules/ssl'
make[3]: *** [shared-build-recursive] Error 1
make[3]: Leaving directory `/root/httpd-2.0.47/modules/ssl'
make[2]: *** [shared-build-recursive] Error 1
make[2]: Leaving directory `/root/httpd-2.0.47/modules'
make[1]: *** [shared-build-recursive] Error 1
make[1]: Leaving directory `/root/httpd-2.0.47'
make: *** [all-recursive] Error 1

 supereyes 回复于:2003-12-04 16:02:34
up

 s0f 回复于:2003-12-30 23:22:36
解決 Red Hat Linux 9 發生 "krb5.h: No such file or directory" 錯誤的方法
有在 Red Hat Linux 9.0 上面 build 一些要用到 openssl 的程式的人,蠻容易遇到類似這樣的錯誤:


gcc  -DLINUX  -I.. -I../include -I/usr/include -O2 -g -pipe -march=athlon -Wall -c mod_tls.c
In file included from /usr/include/openssl/ssl.h:179,
                 from mod_tls.c:40:
/usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory


這是因為 Red Hat Linux 9.0 的 krb5-devel 套件把 kerberos 的 include file 放到了 /usr/kerberos/include 裡面,而不是一般位置的 /usr/include 這個目錄。而 openssl 支援 kerberos,因此在 compile 使用到 openssl 的程式就很容易發生找不到 kerberos 的 include file 的錯誤。

而解決的辦法相當簡單,首先當然要確定 krb5-devel 以及 krb5-libs 等套件確實有安裝在系統上,而不是根本沒安裝;接下來,建立以下的 symbolic links:


ln -s /usr/kerberos/include/com_err.h /usr/include/
ln -s /usr/kerberos/include/profile.h /usr/include/
ln -s /usr/kerberos/include/krb5.h /usr/include/

 s0f 回复于:2003-12-30 23:24:51
我也是因为编译snort遇到这个问题.搜索到一个台湾论坛发现的.
shit 这个rh3as带的输入法真难用 
BTW: RH3AS 也是把文件放到/usr/kerberos/include  变态的RH , 8 好像没有这个问题

 chengxin119 回复于:2004-07-18 02:53:35
我这样编译时也出错了./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-ssl=shared 

我这样编译就没有了问题,我的系统是RH AS3:
./configure --enable-so --with-ssl=/usr/local/openssl --enable-ssl
make
make install

结果就成功了!Apache/2.0.50 (Unix) mod_ssl/2.0.50 OpenSSL/0.9.7d Server at localhost Port 80,
我先安装了openssl

本文关键:编译apache2.0.X带ssl模块出错?恳请解答
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top