linux ununtu通过nginx-1.6.2.tar.gz安装nginx并安装在自定义目录XXX下 的步骤


Ubuntu 下通过源码安装 Nginx 1.6.2 到自定义目录 /home/aot/nginx 的步骤

以下是将 Nginx 1.6.2 源码包离线安装到自定义目录的详细流程,包含依赖管理、编译配置和服务管理:


一、准备工作

1. 下载源码包和依赖(需联网环境准备)
  • Nginx 1.6.2 源码包
    从官网下载 nginx-1.6.2.tar.gz。
  • 依赖库(若离线需提前下载):
    # 在联网机器上下载编译依赖(Ubuntu)
    apt-get download build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
    
2. 传输文件到离线服务器

将以下文件通过 U 盘或内网传输到目标服务器:

  • nginx-1.6.2.tar.gz
  • 依赖的 .deb 包(如 build-essential_*.deb, libpcre3-dev_*.deb 等)

二、安装编译依赖

1. 安装 .deb
# 进入依赖包目录
cd /path/to/deps# 安装所有依赖
sudo dpkg -i *.deb
2. 验证工具链
# 检查 gcc 和 make 是否可用
gcc --version
make --version

三、编译安装 Nginx

1. 解压源码包
tar -zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
2. 配置编译选项(指定安装路径)
./configure \--prefix=/home/aot/nginx \  # 指定安装目录--with-http_ssl_module \    # 启用 SSL 模块--with-pcre \               # PCRE 正则库支持--with-zlib                 # 压缩库支持
  • 若提示依赖缺失:检查是否已安装 libpcre3-devzlib1g-dev
3. 编译并安装
make
sudo make install  # 需要 sudo 权限写入系统目录(如 /usr/local/lib)

四、配置环境变量

1. 将 Nginx 可执行文件路径加入 PATH
echo 'export PATH=/home/aot/nginx/sbin:$PATH' >> ~/.bashrc
source ~/.bashrc
2. 验证安装
nginx -v
# 输出:nginx version: nginx/1.6.2

五、管理 Nginx 服务

1. 启动 Nginx
/home/aot/nginx/sbin/nginx
2. 停止 Nginx
/home/aot/nginx/sbin/nginx -s stop
3. 重新加载配置
/home/aot/nginx/sbin/nginx -s reload
4. 创建 Systemd 服务(可选)
sudo vim /etc/systemd/system/nginx.service

文件内容

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target[Service]
Type=forking
ExecStart=/home/aot/nginx/sbin/nginx
ExecReload=/home/aot/nginx/sbin/nginx -s reload
ExecStop=/home/aot/nginx/sbin/nginx -s quit
PIDFile=/home/aot/nginx/logs/nginx.pid[Install]
WantedBy=multi-user.target

启用服务

sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx

六、验证服务状态

1. 检查端口监听
netstat -tulnp | grep nginx
# 正常输出:tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN <PID>/nginx
2. 访问默认页面

在浏览器输入服务器 IP 地址,若显示 “Welcome to nginx!” 表示成功。


七、常见问题解决

1. 编译时报错 C compiler cc is not found
  • 原因:未安装编译工具链。
  • 解决:离线安装 build-essential 包。
2. 启动时报错 bind() to 0.0.0.0:80 failed
  • 原因:80 端口被占用(如 Apache)。
  • 解决:关闭占用程序或修改 Nginx 端口:
    # 编辑配置文件
    vim /home/aot/nginx/conf/nginx.conf
    # 修改监听端口:listen 8080;
    /home/aot/nginx/sbin/nginx -s reload
    
3. 权限不足无法启动
  • 原因:非 root 用户尝试绑定 1024 以下端口。
  • 解决
    • 使用 sudo 启动。
    • 或赋予端口绑定权限:
      sudo setcap 'cap_net_bind_service=+ep' /home/aot/nginx/sbin/nginx
      

八、卸载 Nginx

# 停止服务
/home/aot/nginx/sbin/nginx -s stop# 删除安装目录
rm -rf /home/aot/nginx# 移除 Systemd 服务(如果已创建)
sudo rm /etc/systemd/system/nginx.service
sudo systemctl daemon-reload

总结

通过以上步骤,您已将 Nginx 1.6.2 安装到自定义目录,并配置了基础服务管理。如需更复杂的模块支持(如 HTTP2、GeoIP),可在 ./configure 阶段添加对应参数。建议定期检查 Nginx 安全公告,确保版本安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/72147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 变量的输入输出教程

一、变量的基本概念 在 C 中&#xff0c;变量是用于存储数据的命名内存位置。在使用变量之前&#xff0c;需要先声明它的类型和名称&#xff0c;这样编译器才能为其分配适当大小的内存空间。例如&#xff1a; int age; // 声明一个整型变量 age double salary; // 声明一个…

React底层常见的设计模式

在React中&#xff0c;常见的设计模式为开发者提供了结构化和可重用的解决方案&#xff0c;有助于提高代码的可维护性和可扩展性。以下是对React中几种常见设计模式的详细解析&#xff0c;并附上示例代码和注释&#xff1a; 1. 容器组件与展示组件模式&#xff08;Container/P…

【MATLAB例程】三维下的IMM(交互式多模型),模型使用CV(匀速)和CA(匀加速)

给出三维下的交互式多模型&#xff08;IMM&#xff09;matlab例程&#xff0c;模型使用匀速运动CV和匀加速运动CA&#xff0c;滤波使用EKF&#xff08;扩展卡尔曼滤波&#xff09; 文章目录 代码运行结果程序结构 代码讲解模型定义&#xff1a;轨迹生成&#xff1a;IMM核心流程…

物理内存组织与分配的核心概念

在 Linux 内核内存管理&#xff08;尤其是 Buddy System 伙伴系统&#xff09;中&#xff0c;node、zone、type 和 order 是描述物理内存组织与分配的核心概念。以下是它们的详细解释&#xff1a; 1. Node&#xff08;NUMA 节点&#xff09; 定义&#xff1a; 在 NUMA&#xf…

智科技赋能宠物关怀新时代

在科技日新月异的今天&#xff0c;智能宠物监控技术正悄然引领宠物护理领域的新变革。借助尖端的传感器技术、高清摄像头以及强大的数据分析能力&#xff0c;这些智能系统为宠物主人开辟了前所未有的宠物关怀途径&#xff0c;让爱与关怀跨越时空限制。 智能宠物监控系统的核心…

SOME/IP 教程知识点总结

总结关于SOME/IP的教程,首先通读整个文件,理解各个部分的内容。看起来这个教程从介绍开始,讲到了为什么在车辆中使用以太网,然后详细讲解了SOME/IP的概念、序列化、消息传递、服务发现(SOME/IP-SD)、发布/订阅机制以及支持情况。 首先,我需要确认每个章节的主要知识点。…

playbin之autoplug_factories源码剖析

一、autoplug_factories_cb /* Called when we must provide a list of factories to plug to pad with caps.* We first check if we have a sink that can handle the format and if we do, we* return NULL, to expose the pad. If we have no sink (or the sink does not…

58区间和+44开发商购买土地(前缀和)

58. 区间和&#xff08;第九期模拟笔试&#xff09; 题目描述 给定一个整数数组 Array&#xff0c;请计算该数组在每个指定区间内元素的总和。 输入描述 第一行输入为整数数组 Array 的长度 n&#xff0c;接下来 n 行&#xff0c;每行一个整数&#xff0c;表示数组的元素。…

laravel11设置中文语言包

安装中文语言包 Laravel 11 默认没有内置完整中文语言包&#xff0c;推荐使用第三方维护的完整翻译&#xff1a; # 通过 Composer 安装语言包 composer require laravel-lang/common --dev# 发布中文语言文件到项目 php artisan lang:add zh_CN这会自动将中文语言文件生成到 l…

智能文档解析与语义分割:LlamaIndex 节点解析器模块全解

节点解析器模块 - LlamaIndex 文件内容的节点解析器 有几种基于文件的节点解析器,它们会根据解析的内容类型(JSON、Markdown 等)创建节点。 最简单的流程是将 FlatFileReader 与 SimpleFileNodeParser 结合使用,自动为每种内容类型选择最佳节点解析器。然后,可以将基于…

实现遍历Windows所有字体的基本属性

参考podofo #include <windows.h> #include <string> #include <memory> #include <set> #include <unordered_map> #include <vector> #include <algorithm> #include <iostream> #include <iomanip> #include <fst…

postman--接口测试工具安装和使用教程

postman–接口测试工具 postman是一款支持http协议的接口调试与测试工具&#xff0c;其主要特点就是功能强大&#xff0c;使用简单且易用性好 。 无论是开发人员进行接口调试&#xff0c;还是测试人员做接口测试&#xff0c;postman都是我们的首选工具之一 。 下面先通过一张…

综合练习 —— 递归、搜索与回溯算法

目录 一、1863. 找出所有子集的异或总和再求和 - 力扣&#xff08;LeetCode&#xff09; 算法代码&#xff1a; 代码思路 问题分析 核心思想 实现细节 代码解析 初始化 DFS 函数 时间复杂度 空间复杂度 示例运行 输入 运行过程 总结 二、 47. 全排列 II - 力扣&a…

代码随想录算法训练day64---图论系列8《拓扑排序dijkstra(朴素版)》

代码随想录算法训练 —day64 文章目录 代码随想录算法训练前言一、53. 117. 软件构建—拓扑排序二、47. 参加科学大会---dijkstra&#xff08;朴素版&#xff09;总结 前言 今天是算法营的第64天&#xff0c;希望自己能够坚持下来&#xff01; 今天继续图论part&#xff01;今…

学术小助手智能体

学术小助手&#xff1a;开学季的学术领航员 文心智能体平台AgentBuilder | 想象即现实 文心智能体平台AgentBuilder&#xff0c;是百度推出的基于文心大模型的智能体平台&#xff0c;支持广大开发者根据自身行业领域、应用场景&#xff0c;选取不同类型的开发方式&#xff0c;…

JavaScript 简单类型与复杂类型-复杂类型传参

在JavaScript中&#xff0c;变量根据其存储的数据类型可分为简单类型&#xff08;基本数据类型&#xff09;和复杂类型&#xff08;引用数据类型&#xff09;。理解这两者在函数调用时的行为差异对于编写高效且无误的代码至关重要。本文将专注于探讨复杂类型的参数传递机制&…

L2-043 龙龙送外卖(dfs)

龙龙是“饱了呀”外卖软件的注册骑手&#xff0c;负责送帕特小区的外卖。帕特小区的构造非常特别&#xff0c;都是双向道路且没有构成环 —— 你可以简单地认为小区的路构成了一棵树&#xff0c;根结点是外卖站&#xff0c;树上的结点就是要送餐的地址。 每到中午 12 点&#…

如何基于PyTorch做二次开发

基于PyTorch进行二次开发以实现可视化工程&#xff0c;可以从以下几个方面入手&#xff1a;模型结构可视化、训练过程监控、特征可视化等。以下是一些推荐的GitHub项目&#xff0c;这些项目可以帮助你快速搭建一个可视化的工程环境&#xff1a; ### 1. **PyTorch CNN Visualiz…

本地大模型编程实战(26)用langgraph实现基于SQL数据构建的问答系统(5)

本文将将扩展上一篇文章完成的 langgraph 链&#xff0c;继续使用基于 langgraph 链 &#xff0c;对结构化数据库 SQlite 进行查询的方法。该系统建立以后&#xff0c;我们不需要掌握专业的 SQL 技能&#xff0c;可以用自然语言询问有关数据库中数据的问题并返回答案。主要完善…

【Kubernetes】污点和容忍

一、概述 在 Kubernetes&#xff08;k8s&#xff09;中&#xff0c;污点&#xff08;Taints&#xff09; 是定义在节点上的一种机制&#xff0c;用于拒绝某些 Pod 调度到该节点&#xff0c;除非这些 Pod 具有对应的容忍度&#xff08;Tolerations&#xff09;。污点可以用来控…