升级nginx到1.2.0
2012-05-15 10:52:27 来源:WEB开发网核心提示: 首先下载最新源码文件 nginx-1.2.0.tar.gz 解压 tar -zxvf nginx-1.2.0.tar.gz 同目录下产生同名文件夹 cd nginx-1.2.0.tar.gz 察看原来的配置 /usr/local/nginx/sbin/nginx -V 注意是大写的Vnginx version: n
首先下载最新源码文件 nginx-1.2.0.tar.gz
解压 tar -zxvf nginx-1.2.0.tar.gz 同目录下产生同名文件夹
cd nginx-1.2.0.tar.gz
察看原来的配置 /usr/local/nginx/sbin/nginx -V 注意是大写的V
nginx version: nginx/0.7.6.x
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
TLS SNI support disabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
拷贝你的红色字体的安装配置参数
安装配置:
cd nginx-1.2.0
# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
中途提示缺少pcre配置,图省事,直接yum安装
yum -y install pcre-devel
yum -y install pcre-devel openssl openssl-devel
然后make但是不要make install
编译完,在objs目录下有一个nginx执行文件,备份下原来老的nginx文件:
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
复制新文件
cp objs/nginx /usr/local/nginx/sbin/nginx
检测一下是否正常读取配置文件
/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
显示没有问题。
执行命令完成升级: make upgrade 会有如下输出
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
sleep 1
test -f /usr/local/nginx/logs/nginx.pid.oldbin
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
检查版本是否已经更新:/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.2.0
TLS SNI support disabled
还有一行是你的编译参数
至此,升级完成.
我在升级过程中make报错
编译时候出现错误提示:
objs/src/http/ngx_http_request.o: In function `ngx_http_ssl_servername':
ngx_http_request.c:(.text+0xba7): undefined reference to `SSL_get_servername'
ngx_http_request.c:(.text+0xc5b): undefined reference to `SSL_set_SSL_CTX'
原因是升级了openssl
解决办法:
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-openssl=这里执行openssl的源码包的地址,不是安装路径
赞助商链接