【NGINX】nginx编译时错误 ./configure: error: C compiler cc is not found

背景:

  • 因需求,需要装 php+nginx 运行环境,linux 是 centos 7.2
  • 服务器是内网,无法连接到公网。所以只能手动编译安装 nginx

问题产生

1、之前有编译安装过 nginx1.15,现在是安装 1.17 版本。Centos 7 编译安装 Nginx-1.15.7

2、编译时遇到此报错

./configure: error: C compiler cc is not found

一看,这不是没有安装 c 编译器嘛,如果是公网环境,直接用 yum -y install gcc-c++ 安装就完事了但现在不是公网,只能一个个装依赖了。我是从 centos7.2 的 ISO 镜像文件里面拿的依赖包用 rpm 安装 安装完之后依然是报此错误,检查了 gcc 已经安装完成。也百度了 nginx 需要的依赖,都装上了。

但依旧不管用。。。。。。。。

3、可以使用此方法查看具体错误 编辑 auto/cc/name 文件,将 21 行的 “exit 1” 注释掉 1

解决方案

再此方法之前,我也有重装 gcc 等依赖,但依然无济于事。后来搜了一下 CentOS7 rpm 安装 gcc,看到了一篇文章,需要安装一下包,因为每个包之间都有互相依赖,抱着希望试一试

4、使用 rpm 安装准备好的依赖包

rpm -Uvh *.rpm --force --nodeps

5、重新编译 nginx,成功

6、原因分析 估计是安装 gcc 的时候缺少 gcc 所依赖的包,导致 gcc 部分功能不生效,或者是环境变量之类的因素