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
1
还有一些依赖库:
yum install openssl openssl-devel -y
1
yum install pcre pcre-devel -y
1
yum install zlib zlib-devel -y
1
三、把nginx压缩文件上传到linux
我在/opt目录下新建了一个apps目录,将nginx源码放入apps目录下,并解压
四、配置
把nginx源码解压好之后,进入到当前目录下
cd /opt/nginx-1.8.1
然后执行下面的命令:
[root@node1 nginx-1.8.1]# ./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_gzip_static_module --error-log-path=/var/log/nginx/nginx.log --pid-path=/var/log/nginx/pid
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”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
然后查了百度,根据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
1
2
3
4
5
6
7
心态有点崩,然后也不管了,想着死马当活马医,直接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:
1
2
3
4
5
6
7
8
9
10
11
12
和第一次一样处理就可以了。
接着make install
六、验证是否安装成功
找到nginx下的sbin目录,执行下面命令:
[root@localhost sbin]# ./nginx
1
查看nginx是否在进程中
————————————————
版权声明:本文为CSDN博主「快乐姑娘贝尔塔塔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46219511/article/details/117712952