离线安装Nginx(Linux环境且无root权限)

📂 第一步:准备安装包(在有网络的电脑上操作)

下载以下文件(可根据实际需求调整),并将它们上传到服务器的 /home/mca/ 目录下。

  1. Nginx : 下载 .tar.gz 压缩包。

    • 例如:nginx-1.22.1.tar.gz
  2. Nginx 依赖库(必须!因为离线且无权限):

    • pcre-8.45.tar.gz (用于解析正则表达式)
    • zlib-1.2.13.tar.gz (用于 gzip 压缩)
    • openssl-1.1.1w.tar.gz (用于 HTTPS)

🛠️ 第二步:登录服务器并创建目录结构

假设已经将上述 4 个文件上传到了 /home/mca/ 目录。

bash 复制代码
# 1. 创建必要的目录结构
cd /home/mca/
mkdir -p software  # 用于存放安装包
mkdir -p app       # 用于存放编译/解压后的程序
​
# 2. 将上传的安装包移动到 software 目录(如果还没在该目录下)
mv *.tar.gz software/
cd software

🌐 第三步:编译安装 Nginx(关键步骤)

由于是离线且无 root 权限,必须在 configure 阶段指定依赖库的源码路径和安装路径。

  1. 解压 Nginx 和依赖

    bash 复制代码
    cd /home/mca/software
    # 解压 Nginx
    tar -zxvf nginx-1.22.1.tar.gz
    # 解压依赖库(必须解压在 software 目录下,方便 Nginx 找到)
    tar -zxvf pcre-8.45.tar.gz
    tar -zxvf zlib-1.2.13.tar.gz
    tar -zxvf openssl-1.1.1w.tar.gz
  2. 编译安装

    • 进入 Nginx 源码目录:

      bash 复制代码
      cd nginx-1.22.1
    • 执行配置命令(关键:--prefix 指定安装到有权限的目录):

      ini 复制代码
      ./configure \
      --prefix=/home/mca/app/nginx \
      --with-pcre=../pcre-8.45 \
      --with-zlib=../zlib-1.2.13 \
      --with-openssl=../openssl-1.1.1w \
      --with-http_ssl_module
    • 如果上面命令报错,通常是因为缺少 gcc 编译器。请确认 gcc --version 是否能运行(这需要管理员在离线环境下安装 gcc RPM 包,属于系统基础环境,不属于应用安装包)。

    • 编译并安装:

      go 复制代码
      make && make install
  3. 配置和启动 Nginx

    • 进入安装目录的 sbin 目录:

      bash 复制代码
      cd /home/mca/app/nginx/sbin
    • 修改配置文件(如果需要):编辑 /home/mca/app/nginx/conf/nginx.conf,将 listen 80; 改为 listen 8081;(或其他大于 1024 的端口,因为非 root 用户不能使用 1-1024 端口)。

    • 启动:

      bash 复制代码
      ./nginx
    • 重新加载配置(修改 conf 后):

      bash 复制代码
      ./nginx -s reload

📌 总结与检查

  • 目录结构

    • /home/mca/software/:存放所有 .tar.gz 源文件。
    • /home/mca/app/:存放解压/编译后的 Nginx。
  • 权限 :所有操作都在 mca 用户下完成,无需 sudoroot

  • 端口:Nginx 默认 80(需手动改配置大于 1024 的端口,因为非 root 用户不能使用 1-1024 端口)。同时确保服务器防火墙(如果有)放行这些端口。

相关推荐
运维全栈笔记11 小时前
Ansible 自动化 Nginx 集群部署实战:动态 Inventory、滚动发布与 Role 工程化
nginx·自动化·ansible
阿标在干嘛1 天前
Nginx一个配置错误,流量损失30%!这是我们的完整排查记录
运维·nginx
IT菜鸟程2 天前
Ubuntu 下 apt 版 Nginx 升级为源码编译版本完整操作指南(1.24.0 → 1.30.4 实战)
linux·nginx·ubuntu
sbjdhjd2 天前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
NGINX开源社区2 天前
NGINX Gateway Fabric 2.6:F5 WAF for NGINX 集成 Gateway API
nginx·gateway·fabric
小白羊丨3 天前
HTTP/2 如何缓解 HTTP/1.1 阻塞;长连接对 Nginx 有什么影响?
网络协议·nginx·http
xixiaoyunya3 天前
Docker 容器化部署实战:从零搭建一套完整的 Nginx + Node.js + MySQL + Redis 项目环境
nginx·docker·node.js
SendTomo4 天前
【技术交流】从0到1构建一个汉字学习平台:汉字吧(hanzi8.com)的技术架构猜想
redis·mysql·nginx·php·个人开发
滨哥GPT4 天前
Codex新增文件上传后为什么小文件正常,大文件总失败?Multipart、Body Limit与Nginx限制排查
nginx·ai编程·文件上传·codex·multipart
come112345 天前
Nginx `location` 配置说明(后端开发版)
运维·nginx