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-dev
和zlib1g-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 安全公告,確保版本安全。