openssl升级及nginx重新编译

openssl升级
参考 http://blog.csdn.net/xysoul/article/details/49913645

1
tar -zxvf openssl-1.0.2l.tar.gz 
2
./config shared zlib-dynamic
3
#注意如果有问题,会显示出来,一般是perl版本问题
4
#,Perl v5.10.0 required--this is only v5.8.8, stopped at ./Configure line 12.config完成后执行 make 命令
5
make
6
make 命令执行完后再执行 make install 命令,安装openssl
7
make install
8
#重命名原来的openssl命令
9
mv /usr/bin/openssl /usr/bin/openssl.old
10
#重命名原来的openssl目录
11
mv /usr/include/openssl /usr/include/openssl.old
12
#将安装好的openssl 的openssl命令软连到/usr/bin/openssl
13
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
14
#将安装好的openssl 的openssl目录软连到/usr/include/openssl
15
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
16
#修改系统自带的openssl库文件,如/usr/local/lib64/libssl.so(根据机器环境而定) 软链到升级后的libssl.so
17
ln -s /usr/local/ssl/lib/libssl.so /usr/local/lib64/libssl.so
18
#执行命令查看openssl依赖库版本是否为1.0.1g:
19
strings /usr/local/lib64/libssl.so |grep OpenSSL
20
#在/etc/ld.so.conf文件中写入openssl库文件的搜索路径
21
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
22
#使修改后的/etc/ld.so.conf生效
23
ldconfig -v


nginx重新编译
1
2
/usr/local/nginx/sbin/nginx -V
3
cd /opt/nginx-1.8.1
4
./configure  --prefix=/usr/local/nginx --with-http_stub_status_module  --with-http_realip_module  --with-http_ssl_module --with-openssl=/usr/local/ssl
5
make 
6
#千万别make install,否则就覆盖安装了
7
cp /usr/local/nginx/sbin/nginx  /usr/local/nginx/sbin/nginx.bak
8
ps -ef |grep nginx
9
#查看master进程号XX
10
kill -QUIT  XXX
11
cp /opt/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/nginx
12
/usr/local/nginx/sbin/nginx -t
13
/usr/local/nginx/sbin/nginx


make的时候编译报错了,参考以下方法解决
[/usr/local/openssl//.openssl/include/openssl/ssl.h] Error 127

1
解决Nginx添加openssl模块编译时报错问题    ##以下是原作者的内容
2
/bin/sh: line 2: ./config: No such file or directory
3
make[1]: *** [/usr/local/ssl/.openssl/include/openssl/ssl.h] Error 127
4
make[1]: Leaving directory `/usr/local/src/nginx-1.9.9'
5
make: *** [build] Error 2
6
需要说明的是,我这里编译所使用的Nginx源码是1.9.9的。根据报错信息我们知道,出错是因为Nginx在编译时并不能在/usr/local/ssl/.openssl/ 这个目录找到对应的文件,其实我们打开/usr/local/ssl/这个目录可以发现这个目录下是没有.openssl目录的,因此我们修改Nginx编译时对openssl的路径选择就可以解决这个问题了
7
解决方案:
8
打开nginx源文件下的/usr/local/src/nginx-1.9.9/auto/lib/openssl/conf文件:
9
找到这么一段代码:
10
CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
11
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
12
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
13
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
14
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
15
修改成以下代码:
16
CORE_INCS="$CORE_INCS $OPENSSL/include"
17
CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
18
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
19
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
20
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
21
 然后再进行Nginx的编译安装即可
22
##向原作者表示感谢,留为笔记
来源: http://blog.chinaunix.net/uid-2274226-id-5756596.html


你可能感兴趣的:(openssl升级及nginx重新编译)