1.环境安装
1.安装gcc环境
$ sudo yum -y install gcc gcc-c++ # nginx 编译时依赖 gcc 环境
2.安装pcre
$ sudo yum -y install pcre pcre-devel # 让 nginx 支持重写功能
3.安装zlib
# zlib 库提供了很多压缩和解压缩的方式,nginx 使用 zlib 对 http 包内容进行 gzip 压缩
$ sudo yum -y install zlib zlib-devel
4.安装openssl
# 安全套接字层密码库,用于通信加密
$ sudo yum -y install openssl openssl-devel
2.解压并重命名安装包
sudo tar -zxvf nginx-1.11.5.tar.gz # 解压缩
mv nginx-1.11.5 nginx # 重命名
3.进入到重命名后的nginx目录下检查环境
$ ./configure --prefix=/usr/local/nginx # 检查平台安装环境
4.编译安装
make && make install
5.如上述未出现问题,进入sbin目录下启动nginx
/usr/local/nginx/sbin/nginx # 启动nginx
/usr/local/nginx/sbin/nginx -s reload # 重启加载服务
/usr/local/nginx/sbin/nginx -s stop # 停止服务
6.遇到问题
1.报错如下内容
src/core/ngx_murmurhash.c: In function ‘ngx_murmur_hash2’:
src/core/ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
h ^= data[2] << 16;
~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: note: here
case 2:
^~~~
src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
h ^= data[1] << 8;
~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: note: here
case 1:
解决方法(亲测):编辑objs/Makefile文件,删除CFLAGS中的Werror
vim /usr/local/dev/nginx/nginx/objs/Makefile
2.继续make会遇到如下问题
src/os/unix/ngx_user.c: In function ‘ngx_libc_crypt’:
src/os/unix/ngx_user.c:36:7: error: ‘struct crypt_data’ has no member named ‘current_salt’
cd.current_salt[0] = ~salt[0];
^
make[1]: *** [objs/Makefile:732: objs/src/os/unix/ngx_user.o] Error 1
make[1]: Leaving directory '/usr/local/java/nginx-1.9.9'
make: *** [Makefile:8: build] Error 2
[root@iZuf6bhe673f5qtkz6pwjuZ nginx-1.9.9]#
解决方法:编辑/usr/local/dev/nginx/nginx/src/os/unix/ngx_user.c文件,注释掉cd.current_salt[0] = ~salt[0]; 这行代码
vim /usr/local/dev/nginx/nginx/src/os/unix/ngx_user.c
进到ngx_user.c文件后
/ngx_libc_crypt ##表示搜索ngx_libc_crypt,找到这个方法下面的cd.current_salt[0] = ~salt[0];注释,注意,注释的时候是/*cd.current_salt[0] = ~salt[0];*/
完了之后继续make && make install 就ok啦