个人随笔
一次失败的安装Nginx的经历
2020-09-12 21:33:38

我在VULTR买了一个每个月3.5美元的服务器,本想安装一个nginx试试,参考的是我这篇文档:CentOS7上安装nginx服务器,然后,从./configure 开始就不知道发了什么神经,开始经历如下让人恶心的报错,最后还是没有解决,看来我还是用docker吧。

1、 ./configure: error: the HTTP rewrite module requires the PCRE library.

安装pcre-devel解决问题
yum -y install pcre-devel

2、-bash: make: command not found

Centos中无法使用make,make install,命令 make: command not found ,一般出现这个-bash: make: command not found提示,是因为安装系统的时候使用的是最小化mini安装,系统没有安装make、vim等常用命令,直接yum安装下即可。

  1. yum -y install gcc automake autoconf libtool make

直接ssh运行即可,安装make。

3、make[1]: * [objs/Makefile:468: objs/src/core/ngx_murmurhash.o] Error 1

将对应的makefile文件夹中(如本文中在~ /nginx-1.8.1/objs/Makefile) 找到 -Werro 并去掉 在重新make即可

查了-Werrori意思之后 发现原来它要求GCC将所有的警告当成错误进行处理 所有导致错误输出 并不能进行下一步

4、错误

  1. 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
  2. cd.current_salt[0] = ~salt[0];
  3. ^
  4. make[1]: *** [objs/Makefile:769: objs/src/os/unix/ngx_user.o] Error 1
  5. make[1]: Leaving directory '/usr/local/nginx-1.10.1'
  6. make: *** [Makefile:8: build] Error 2

这里提示我们struct crypt_data’没有名为‘current_salt’的成员:cd.current_salt[0] = ~salt[0];
最好的办法是换一个版本,因为条件限制,我们就进到源码里把这行直接注释掉好了。

  1. vim src/os/unix/ngx_user.c
  2. cd.current_salt[0] = ~salt[0]; 注释掉
  3. /* cd.current_salt[0] = ~salt[0];*/

5、错误

  1. src/event/ngx_event_openssl.c:1941:21: note: each undeclared identifier is reported only once for each function it appears in
  2. make[1]: *** [objs/Makefile:811: objs/src/event/ngx_event_openssl.o] Error 1
  3. make[1]: Leaving directory '/usr/local/nginx-1.10.1'
  4. make: *** [Makefile:8: build] Error 2

原因:由于默认使用了openssl 1.1.x 版本,导致的API不一致引起

直接安装openssl1.0版本

  1. wget http://www.openssl.org/source/openssl-1.1.0e.tar.gz
  2. tar -zxvf openssl-1.1.0e.tar.gz
  3. cd openssl-1.1.0e/ &&./config shared zlib --prefix=/usr/local/openssl && make && make install
  4. ./config -t
  5. make depend
  6. cd /usr/local
  7. ln -s openssl ssl
  8. echo "/usr/local/openssl/lib" >>/etc/ld.so.conf
  9. cd /usr/local/openssl-1.1.0e
  10. ldconfig
  11. echo $?
  12. echo "PATH=$PATH:/usr/local/openssl/bin" >> /etc/profile && source /etc/profile

妈的,放弃~

 1
有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2