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

7 阅读2分钟

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

下载以下文件(可根据实际需求调整),并将它们上传到服务器的 /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/ 目录。

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

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

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

  1. 解压 Nginx 和依赖

    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 源码目录:

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

      ./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 包,属于系统基础环境,不属于应用安装包)。

    • 编译并安装:

      make && make install
      
  3. 配置和启动 Nginx

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

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

    • 启动:

      ./nginx
      
    • 重新加载配置(修改 conf 后):

      ./nginx -s reload
      

📌 总结与检查

  • 目录结构

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

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