参考文章:[http://www.2cto.com/os/201305/208921.html][6]
1、下载新的nginx包
下载地址:[http://nginx.org][6]
2、将nginx放到/usr/src目录下
3、编译新的nginx
tar zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1.tar.gz
./configure --prefix=/usr/local/nginx --with-stream --with-cc=/usr/sfw/bin/gcc
make
注意:这里make就行,不要make install。其中–prefix=/usr/local/nginx 为原来安装nginx的目录。
4、替换原有nginx执行文件
编译完,在nginx-1.10.1文件夹下的objs目录下有一个nginx执行文件就是新的执行文件。
# 备份原理的nginx执行文件
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
# 复制新的nginx执行文件到安装目录下
cp objs/nginx /usr/local/nginx/sbin/nginx
5、检查是否成功
# 显示nginx是否运行正常
/usr/local/nginx/sbin/nginx -t
# 显示nginx版本信息
/usr/local/nginx/sbin/nginx -V
在运行/usr/local/nginx/sbin/nginx -t 这一步时,有可能会报错:
nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
从错误看,是缺少了libpcre.so.1这个文件,我们可以进一步检查一下:
[root@localhost /]#ldd $(which /usr/local/nginx/sbin/nginx)
linux-gate.so.1 => (0x0071b000)
libpthread.so.0 => /lib/libpthread.so.0 (0×00498000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0×00986000)
libpcre.so.1 => not found
libcrypto.so.6 => /lib/libcrypto.so.6 (0×00196000)
libz.so.1 => /lib/libz.so.1 (0×00610000)
libc.so.6 => /lib/libc.so.6 (0x002d7000)
/lib/ld-linux.so.2 (0x006a8000)
libdl.so.2 => /lib/libdl.so.2 (0x008c3000)
可以看到就是 libpcre.so.1 => not found ,这个问题很好解决:
#如果是32位系统
[root@localhost /]# ln -s /lib/libpcre.so.1 /lib
#如果是64位系统
[root@localhost /]# ln -s /lib/libpcre.so.1 /lib64
然后再运行 /usr/local/nginx/sbin/nginx -t 就可以成功了。