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.pswp.cn/bicheng/72147.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72147.shtml
英文地址,請注明出處:http://en.pswp.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;。污點可以用來控…