升級nginx到1.2.0

首先下載最新源碼文件 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 nginx

拷貝你的紅色字體的安裝配置參數
安裝配置:
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的源碼包的地址,不是安裝路徑ide

相關文章
相關標籤/搜索