背景:
- 因需求,需要装 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 部分功能不生效,或者是环境变量之类的因素