马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Linux 离线安装 Nginx 全过程与避坑要点
很多企事业单位内网的 Linux 服务器不连外网,没法直接 yum 装包,只能提前在网上把 rpm 包下好传上去手动装。Nginx 依赖的包又多,离线安装最容易卡在"缺依赖"这一步。下面把流程和几个真实的坑过一遍。
一、依赖准备
Nginx 需要的依赖基本就四个:gcc、pcre、zlib、openssl。
1.1 gcc
gcc 本身就由多个 rpm 组成,通常十来个包,可以从阿里云镜像站的 CentOS 7 OS 包目录里下载齐了再传上去,用一条命令装:
rpm -Uvh *.rpm
1.2 另外三个
openssl、pcre、zlib 从各自官网拿源码包即可:
- openssl:https://www.openssl.org/source/
- pcre:http://www.pcre.org/
- zlib:http://www.zlib.net/
源码包装法统一三步:解压、配置、编译安装。
tar -xvf XXX
cd XXX
./configure
make && make install
二、安装 Nginx
从 Nginx 官网 https://nginx.org/en/download.html 下稳定版(stable)的 Linux 源码包,别下 development 版。
把安装包传到服务器的某个目录,解压:
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
三、最容易翻车的一个坑
./configure --prefix=/app/nginx
这里要特别注意目录关系:安装包 nginx-1.24.0.tar.gz 和解压出来的 nginx-1.24.0 都在 /app 同级目录,而 --prefix 指的是安装位置,是个新的 nginx 目录,configure 时不用建,安装后自动生成。
也就是说:Nginx 最终的安装目录不是解压出来的 nginx-1.24.0,而是 /app/nginx。如果不加 --prefix,默认装到 /usr/local/nginx,后面会报这种错:
cp: "conf/koi-win" 与 "/usr/local/nginx/conf/koi-win" 为同一文件
这是反复试出来的结论,老老实实按 --prefix 指定目录来。
四、编译安装与启动
make && make install
cd /app/nginx/sbin
./nginx # 启动
./nginx -s stop # 立即停止
./nginx -s reload # 平滑重启(改配置后用它)
启动后在浏览器输入服务器地址,能看到 Nginx 欢迎页就说明装好了。
五、配置文件到底哪个生效
细心的人会发现:nginx 目录和 nginx-1.24.0 目录里都有个 conf 文件夹,改哪个有效?
答案:make install 执行时已经把配置文件复制到了 /app/nginx/conf,只有 /app/nginx/conf 里的配置才生效。解压目录里的那份只是源码自带的原始模板。
为了避免后面搞混,装完直接把 nginx-1.24.0 目录删掉,只留 nginx,实测没问题。
六、离线安装的通用流程
- 在一台同版本能联网的机器上,用
yum install --downloadonly 或复制已装机器的包目录,把 rpm 收集齐。
- 打包传到目标机,
rpm -Uvh *.rpm 或 yum localinstall *.rpm(后者会自动补依赖)。
- 源码类依赖按"解压 →
./configure → make install"走。
- 验证:
nginx -v 看版本,curl 本机IP 看欢迎页。
七、常见坑汇总
- 装完
nginx 命令找不到:可执行文件在 /app/nginx/sbin/nginx,不在 PATH 里,加绝对路径或用软链接。
- 启动时报
bind() to 0.0.0.0:80 failed:80 端口被占用,netstat -tunlp | grep :80 查是谁。
- 改配置没生效:确认改的是
/app/nginx/conf/nginx.conf,然后 ./nginx -t 验语法,再 -s reload。
- 依赖装一半失败:多半是包之间有版本冲突,
rpm -Uvh 会留半装状态,装之前先把所有依赖包一次性传全。
小结
离线装 Nginx 的骨架是:收齐 gcc/pcre/zlib/openssl 依赖 → 传包 → 编译安装 → --prefix 指定安装路径 → 从 sbin 启动。真正的经验值就两条:--prefix 一定要写,写错了报"同一文件"的 cp 错误;改配置认准 /app/nginx/conf,安装完把解压目录删掉,少一半混乱。
qidao123.com企服评测-应用市场 编辑提示 |