今天线上需要安装nginx,提供下载使用,并集成openssl 提供加密认证
安装环境[CentOS release 5 (Final) _x86_64 系统]
Nginx 版本:nginx-0.7.65
Openssl版本:openssl-0.9.8m
软件下载:
openssl:wget
Nginx:
解压Openssl,Nginx
引用
[root@clear app]# tar -zxvf openssl-0.9.8m.tar.gz
[root@clear openssl-0.9.8m]# pwd
/opt/app/openssl-0.9.8m -----解压路径
[root@clear src]# tar -zxvf nginx-0.7.65.tar.gz
[root@clear nginx-0.7.65]# --prefix=/opt/app/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-openssl=/opt/app/openssl-0.9.8m --user=nginx --group=nginx
[root@clear nginx-0.7.65]# make
[root@clear nginx-0.7.65]# make install
以上没有问题,最后安装Openssl
引用
[root@clear openssl-0.9.8m]# ./config --prefix=/opt/app/openssl
[root@clear openssl-0.9.8m]# make
[root@clear openssl-0.9.8m]# make install
PS:网上文章出错原因
1: 编译安装Nginx 路径不对,Openssl 路径指向不对,不是/opt/app/openssl 而是源码目录,也就是本环境中的/opt/app/openssl-0.9.8m
2:没有安装PCRE 软件包,注意,如果是通过Yum 安装的,一定安装pcre-devel软件包,如下:
[root@clear nginx-0.7.65]# yum install pcre-devel
3:64位系统环境中安装的软件要注意软件安装路径下的lib 目录。看是否是手动指定lib64还是软件自动检测的!!,如Nginx 编译调用openssl 头文件
如下的代码中,可以看到Nginx 调用默认调用的是/opt/app/openssl-0.9.8m/.openssl 目录下的头文件
引用
-I /opt/app/openssl-0.9.8m/.openssl/include \
src/core/ngx_open_file_cache.h \
src/event/ngx_event_openssl.h \
/opt/app/openssl-0.9.8m/.openssl/include/openssl/ssl.h \
-I /opt/app/openssl-0.9.8m/.openssl/include \
objs/src/core/ngx_open_file_cache.o \
objs/src/event/ngx_event_openssl.o \
objs/src/core/ngx_open_file_cache.o \
objs/src/event/ngx_event_openssl.o \
-lcrypt -lpcre /opt/app/openssl-0.9.8m/.openssl/lib/libssl.a /opt/app/openssl-0.9.8m/.openssl/lib/libcrypto.a -ldl -lz
objs/src/core/ngx_open_file_cache.o: $(CORE_DEPS) \
src/core/ngx_open_file_cache.c
-o objs/src/core/ngx_open_file_cache.o \
src/core/ngx_open_file_cache.c
objs/src/event/ngx_event_openssl.o: $(CORE_DEPS) \
src/event/ngx_event_openssl.c
-o objs/src/event/ngx_event_openssl.o \
src/event/ngx_event_openssl.c
/opt/app/openssl-0.9.8m/.openssl/include/openssl/ssl.h: objs/Makefile
cd /opt/app/openssl-0.9.8m \
&& ./config --prefix=/opt/app/openssl-0.9.8m/.openssl no-shared no-threads \