nginx原始碼編譯安裝(詳解)

penngke發表於2021-10-18

nginx編譯安裝

編譯安裝大致步驟:

安裝步驟:

  1. 官網下載合適的版本,建議選擇穩定版本。

    官網地址:https://nginx.org

    wget https://nginx.org/download/nginx-1.20.1.tar.gz

  2. 解壓後,進入原始碼目錄

    cd /opt
    tar -zxvf nginx-1.20.1.tar.gz 
    cd nginx-1.20.1
    
  3. 原始碼檔案各目錄解釋

    [root@localhost nginx-1.20.1]# ll
    總用量 788
    drwxr-xr-x 6 zdsoftro zdsoftro    326 10月 18 15:44 auto
    -rw-r--r-- 1 zdsoftro zdsoftro 311503 5月  25 20:35 CHANGES
    -rw-r--r-- 1 zdsoftro zdsoftro 475396 5月  25 20:35 CHANGES.ru
    drwxr-xr-x 2 zdsoftro zdsoftro    168 10月 18 15:44 conf
    -rwxr-xr-x 1 zdsoftro zdsoftro   2590 5月  25 20:35 configure
    drwxr-xr-x 4 zdsoftro zdsoftro     72 10月 18 15:44 contrib
    drwxr-xr-x 2 zdsoftro zdsoftro     40 10月 18 15:44 html
    -rw-r--r-- 1 zdsoftro zdsoftro   1397 5月  25 20:35 LICENSE
    drwxr-xr-x 2 zdsoftro zdsoftro     21 10月 18 15:44 man
    -rw-r--r-- 1 zdsoftro zdsoftro     49 5月  25 20:35 README
    drwxr-xr-x 9 zdsoftro zdsoftro     91 10月 18 15:44 src
    
    • auto目錄:用於編譯時的檔案,以及相關lib庫,編譯時對對作業系統的判斷等,都是為了輔助./configure命令執行的輔助檔案。

    • CHANGES檔案:就是當前版本的說明資訊,比如新增的功能,修復的bug,變更的功能等

    • CHANGES.ru檔案:作者時俄羅斯人,生產了一份俄羅斯語言的CHANGE檔案

    • conf目錄:是nginx編譯安裝後的預設配置檔案,安裝時會拷貝到安裝的裡面裡面。

    • configure檔案:編譯安裝前的預備執行檔案

    • contrib目錄:該目錄是為了方便vim編碼nginx的配置檔案時候,顏色突出顯示,可以將該目錄拷貝到自己的~/.vim目錄下面

      cp -rf contrib/vim/* ~/.vim/ 這樣vim開啟nginx配置檔案就有突出的顏色顯示。

    • html目錄:編譯安裝的預設的2個標準web頁面,會拷貝到nginx的安裝目錄

    • man目錄:nginx命令的幫助文件

    • src:nginx的原始碼檔案

  4. 開始編譯,執行./configure

    備註:nginx使用yum源安裝,可能導致業務上很多需要的功能模組沒有開啟,還是按需自己編譯比較合適。

    ./configure --help #檢視./configure 支援哪些引數

我演示使用預設引數安裝:

./configure --prefix=/home/zdsoft/nginx

沒有報錯代表安裝完成。

  1. ./configure 執行完成後,會生成很多中間檔案,放在objs目錄下面

  2. 在當前命令執行make命令

    make #沒有報錯代表執行成功

    備註:這個時候,如果是第一次安裝,下一步可以執行make install命令,如果是升級,就不能執行install命令。

    這個時候,需要把objs目錄下生成nginx二進位制檔案拷貝到原老版本的nginx目錄下

  3. 執行make install 安裝命令

    make執行完成後生成的中介軟體檔案,都會放在objs/src目錄下面

    [root@localhost src]# ll
    總用量 8
    drwxr-xr-x 2 root root 4096 10月 18 17:15 core
    drwxr-xr-x 3 root root  191 10月 18 17:15 event
    drwxr-xr-x 4 root root 4096 10月 18 17:15 http
    drwxr-xr-x 2 root root    6 10月 18 16:37 mail
    drwxr-xr-x 2 root root    6 10月 18 16:37 misc
    drwxr-xr-x 4 root root   31 10月 18 16:37 os
    drwxr-xr-x 2 root root    6 10月 18 16:37 stream
    [root@localhost src]# pwd
    /opt/nginx-1.20.1/objs/src
    [root@localhost src]# 
    
  4. 安裝完成,安裝目錄為:/home/zdsoft/nginx/

    nginx -v  #檢視nginx版本
    nginx -V  #檢視nginx編譯引數,如果沒有額外的引數,只會顯示configure arguments: --prefix=/home/zdsoft/nginx
    #這情況下,代表是預設安裝,可以檢視原始碼目錄auto/options 檔案。預設安裝了哪些模組,哪些沒有安裝。
    
  5. nginx程式啟動

/home/zdsoft/nginx/sbin/nginx  -c /home/zdsoft/nginx/conf/nginx.conf

遇到的問題

  1. ./configure: error: the HTTP rewrite module requires the PCRE library.

    解決:yum -y install pcre-devel

  2. ./configure: error: the HTTP gzip module requires the zlib library.

    解決:yum install -y zlib-devel

相關文章