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
然后執(zhí)行下面的命令:
[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: 在函數(shù)‘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
然后查了百度尿背,根據(jù)https://www.cnblogs.com/wxj612/p/13696628.html去操作,然后又報了一個新的錯誤
src/os/unix/ngx_user.c: 在函數(shù)‘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
心態(tài)有點崩捶惜,然后也不管了田藐,想著死馬當活馬醫(yī),直接vim src/os/unix/ngx_user.c把它報錯的這一句注釋掉了
然后他又報了一次和第一次相同的錯誤
即
src/core/ngx_murmurhash.c: 在函數(shù)‘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目錄,執(zhí)行下面命令:
[root@localhost sbin]# ./nginx
1
查看nginx是否在進程中
————————————————
版權聲明:本文為CSDN博主「快樂姑娘貝爾塔塔」的原創(chuàng)文章踊餐,遵循CC 4.0 BY-SA版權協(xié)議景醇,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_46219511/article/details/117712952