首先,在官網下載 nginx 的源碼包,有3種版本能夠選擇:html
我選擇的是 Stable version 中的 1.12.2,是適用於生產環境的最新穩定版本。nginx
下載後能夠解壓移動到/usr/local/bin目錄下:瀏覽器
mv nginx-1.12.2.tar.gz /usr/local/bin
在官方文檔中能夠找到 Installing nginx → Building nginx from Sources,這裏介紹了不少編譯時可配置的選項,大可能是各類路徑的配置以及依賴的模塊。最下面給出了一個配置示例:bash
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=../pcre-8.41 --with-zlib=../zlib-1.2.11
對於路徑,由於我是新手,因此決定不作配置,用默認的就好;
對於模塊,看起來這幾個仍是要配置一下的。ui
在官網下載頁下到最新穩定版 1.1.0g。.net
在 PCRE 官網能夠找到下載地址,注意有兩個大版本:8.x和10.x,我最開始下了一個10.x的版本,編譯失敗了,可能8.x和10.x的接口並不兼容,並且nginx依賴的是8.x。因此這裏選擇了 pcre-8.41.tar.bz2。是8.x的最高版本,也和示例中的版本一致。code
zlib 直接選擇官網首頁最新的 1.2.11 版本就能夠,也是示例中的版本。htm
一樣把這幾個庫解壓,而後也移動到/usr/local/bin
(和 nginx 同目錄):接口
mv openssl-1.1.0g pcre-8.41 zlib-1.2.11 /usr/local/bin
進入以前解壓的 nginx 目錄:ip
cd /usr/lcoal/bin/nginx-1.12.2
執行配置命令,幾個依賴包的路徑對就能夠,官方文檔提示要寫到一行:
./configure --with-http_ssl_module --with-pcre=../pcre-8.41 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.1.0g
一陣 checking 無報錯信息以後配置成功——
其實我最開始沒有裝 OpenSSL,配置的報錯提示仍是很友好的:
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.
因此後面我就配置了 --with-openssl
。
——而後就能夠編譯了:
make
一陣編譯無報錯信息以後安裝:
sudo make install
趕忙試一試:
cd /usr/local/nginx sudo sbin/nginx
去瀏覽器打開 127.0.0.1,看到 nginx 的歡迎頁就大功告成啦。