因为网站需要https服务,所以要配置ssl,但是发现之前安装apache的时候,没有配置mod_ssl
[root@NFS-Client-01 ~]# cat /application/apache/build/config.nice #! /bin/sh # # Created by configure "./configure" \ "--prefix=/application/apache2.2.29" \ "--enable-deflate" \ "--enable-expires" \ "--enable-headers" \ "--enable-modules=most" \ "--with-mpm=worker" \ "--enable-so" \ "--enable-
但是我们可以在不重新编译的情况下,安装ssl模块
环境:
[root@NFS-Client-01 ssl]# cat /etc/redhat-release
CentOS release 6.3 (Final)
[root@NFS-Client-01 ssl]# uname -m
x86_64
[root@NFS-Client-01 ssl]# rpm -qa openssl
openssl-1.0.1e-30.el6_6.4.x86_64
[root@nginx ~]# /application/apache/bin/apachectl -v
Server version: Apache/2.2.29 (Unix)
Server built: Nov 28 2014 04:49:53
1)首先找到oepnssl的 lib和include的路径:
[root@NFS-Client-01 ssl]# whereis openssl
openssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz
2)其次,对apache2的模块如果动态编译通常可以使用 /path/apxs -c *.c来完成
但对 mod_ssl编译是会有一些问题
如:
出现
Unrecognized SSL Toolkit!
是由于 HAVE_OPENSSL这个没有define
需要增加 -DHAVE_OPENSSL
undefined symbol: ssl_cmd_SSLMutex
或
undefined symbol: X509_free
通产是由于静态连接了 openssl的库照成的(默认)。
需要使用 -lcrypto -lssl -ldl
3)因为之前添加了--enable-so这个模块,所以可以通过DSO方式添加:
进入到/soft/httpd-2.2.29/modules/ssl目录下,执行下面的命令:
[root@NFS-Client-01 ssl]# /application/apache/bin/apxs -i -a -D HAVE_OPENSSL=1 -I/usr/include/openssl/ -L/usr/lib64/openssl/ -c *.c -lcrypto -lssl -ldl
出现下图结果,说明安装成功了!!!
4)检查是否安装成功
[root@NFS-Client-01 ssl]# grep "mod_ssl.so" /application/apache/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so
模块安装成功并且已经被激活!!!
添加ssl模块到已经安装好的apache中