nginx源码安装全过程分享,报错“src/os/unix/ngx_user.c:36:7: 错误:‘struct crypt_data’没有名为‘current_salt’的成员” 解决方案
- 一、首先下载好nginx。
- 二、安装GCC和依赖库
- 三、把nginx压缩文件上传到linux
- 四、配置
- 五、编译阶段
- 六、验证是否安装成功
查看## nginx源码安装全过程分享,报错“src/os/unix/ngx_user.c:36:7: 错误:‘struct crypt_data’没有名为‘current_salt’的成员” 解决方案直接空降标题五
一、首先下载好nginx。
链接:nginx下载地址
二、安装GCC和依赖库
由于 Nginx 是由 C/C++语言编写的,所以对其进行编译就必须要使用相关编译器。对于C/C++语言的编译器,使用最多的是 gcc 与 gcc-c++。
yum install gcc gcc-c++ -y
还有一些依赖库:
yum install openssl openssl-devel -y
yum install pcre pcre-devel -y
yum install zlib zlib-devel -y
三、把nginx压缩文件上传到linux
我在/opt目录下新建了一个apps目录,将nginx源码放入apps目录下,并解压
四、配置
把nginx源码解压好之后,进入到当前目录下
cd /opt/nginx-1.8.1
然后执行下面的命令:
[root@node1 nginx-1.8.1]
五、编译阶段
在命令行输入make之后,他竟然报错了,明明一步一步跟着教程来的。没办法,只能百度查原因。
src/core/ngx_murmurhash.c: 在函数‘ngx_murmur_hash2’中:
src/core/ngx_murmurhash.c:37:11: 错误:this statement may fall through [-Werror=implicit-fallthrough=]
h ^= data[2] << 16;
~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: 附注:here
case 2:
^~~~
src/core/ngx_murmurhash.c:39:11: 错误:this statement may fall through [-Werror=implicit-fallthrough=]
h ^= data[1] << 8;
~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: 附注:here
case 1:
^~~~
cc1:所有的警告都被当作是错误
make[1]: *** [objs/Makefile:441:objs/src/core/ngx_murmurhash.o] 错误 1
make[1]: 离开目录“/opt/apps/nginx-1.8.1”
然后查了百度,根据https://www.cnblogs.com/wxj612/p/13696628.html去操作,然后又报了一个新的错误
src/os/unix/ngx_user.c: 在函数‘ngx_libc_crypt’中:
src/os/unix/ngx_user.c:36:7: 错误:‘struct crypt_data’没有名为‘current_salt’的成员
cd.current_salt[0] = ~salt[0];
^
make[1]: *** [objs/Makefile:721:objs/src/os/unix/ngx_user.o] 错误 1
make[1]: 离开目录“/opt/apps/nginx-1.8.1”
make: *** [Makefile:8:build] 错误 2
心态有点崩,然后也不管了,想着死马当活马医,直接vim src/os/unix/ngx_user.c把它报错的这一句注释掉了
然后他又报了一次和第一次相同的错误
即
src/core/ngx_murmurhash.c: 在函数‘ngx_murmur_hash2’中:
src/core/ngx_murmurhash.c:37:11: 警告:this statement may fall through [-Wimplicit-fallthrough=]
h ^= data[2] << 16;
~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: 附注:here
case 2:
^~~~
src/core/ngx_murmurhash.c:39:11: 警告:this statement may fall through [-Wimplicit-fallthrough=]
h ^= data[1] << 8;
~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: 附注:here
case 1:
和第一次一样处理就可以了。
接着make install
六、验证是否安装成功
找到nginx下的sbin目录,执行下面命令:
[root@localhost sbin]
查看nginx是否在进程中
[root@localhost sbin]
root 282589 0.0 0.0 37832 560 ? Ss 19:33 0:00 nginx: master process ./nginx
nobody 282590 0.0 0.4 71420 4508 ? S 19:33 0:00 nginx: worker process
root 283306 0.0 0.1 221924 1156 pts/3 S+ 19:33 0:00 grep --color=auto nginx
在页面中输入"https:[ip地址]",如果出现以下页面,说明安装成功。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)