你好,我正在安装带有开放 SSL 的 httpd-2.0.63。SSL 版本是 OpenSSL 1.0.0a
命令是:
./configure --prefix=/usr/LBalancer2/apache --enable-so --enable-ssl --with-ssl=/usr/LBalancer2/ssl
制作
但是此步骤出现以下错误:
ssl_engine_init.c:在函数‘ssl_init_ctx_protocol’中:
ssl_engine_init.c:391:警告:赋值丢弃指针目标类型的限定符
ssl_engine_init.c:397:警告:赋值丢弃指针目标类型的限定符
ssl_engine_init.c:在函数“ssl_init_ctx_verify”中:
ssl_engine_init.c:534:错误:‘STACK’未声明(在此函数中首次使用)
ssl_engine_init.c:534:错误:(每个未声明的标识符仅报告一次
ssl_engine_init.c:534:错误:对于它出现的每个函数。)
ssl_engine_init.c:534:错误:')' 标记前应有表达式
ssl_engine_init.c:在函数‘ssl_init_FindCAList’中:
ssl_engine_init.c:1109:警告:条件表达式中的指针类型不匹配
make[3]: *** [ssl_engine_init.lo] 错误 1
make[3]: 离开目录 `/home/arosys/Softwares/httpd-2.0.63/modules/ssl'
make[2]: *** [全递归] 错误 1
make[2]:离开目录“/home/arosys/Softwares/httpd-2.0.63/modules/ssl”
make[1]: *** [全递归] 错误 1
make[1]:离开目录“/home/arosys/Softwares/httpd-2.0.63/modules”
make:*** [全递归] 错误 1
我不知道该怎么做。
任何人都可以帮忙。
谢谢
答案1
Apache 2.0/2.2 与 OpenSSL 1.0.0 不兼容,请参阅错误报告:
- https://issues.apache.org/bugzilla/show_bug.cgi?id=49034
- https://issues.apache.org/bugzilla/show_bug.cgi?id=47578
您应该使用 OpenSSL 0.9.8。
编译后,你将得到一个名为:mod_ssl.so 的模块
您可以使用 ldd 来检查使用了哪个 ssl 库:
$ ldd mod_ssl.so
linux-gate.so.1 => (0xb7f2a000)
libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7eac000)
libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7d59000)
libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7d3f000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7be4000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7be0000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7bcb000)
/lib/ld-linux.so.2 (0xb7f2b000)
Apache.org 有关于如何配置 Web 服务器的出色文档:http://httpd.apache.org/docs/2.1/ssl/ssl_howto.html
答案2
我最好的猜测是缺少 openssl 的标头,您确定它们在 /usr/LBalancer2/ssl 中退出,检查 configure 命令的输出以确保已拾取 openssl 标头。