nginx ‘struct crypt_data’没有名为‘current_salt’的成员

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容