在Windows平台上編譯Nginx遇到一些問題, 最後都逐一解決了, 記錄過程.
開啟網址
http://nginx.org/en/download.html
其中 nginx/Windows-1.10.1 是直接下載編譯好的Windows版本的二進位程式
而要下載原始碼需要使用 Mercurial 去 clone, 原始碼位址是 http://hg.nginx.org/nginx
Mercurial 是一個原始碼管理工具, 與 SVN 類似
他有Windows的版本, 在Windows環境下也能使用, 但是官網貌似打不開 https://www.mercurial-scm.org/
但可以在別的地方下載到它 如: http://www.onlinedown.net/soft/87736.htm
版本不一定最新, 但是能用
安裝過程很簡單, 為了方便起見, 可以允許將它的安裝目錄加入到Windows的環境變數PATH中
開啟命令列, cd 到某個目錄(用來存放和編譯Nginx原始碼的位置) , 執行
hg clone http://hg.nginx.org/nginx
開始下載源碼, 看網速可能需要好幾分鐘
下面需要下載Nginx依賴的三個庫, 分別是 PCRE, zlib 和 OpenSSL
Nginx 1.10.1 對應的第三方函式庫的版本分別是
pcre-8.39.tar.gz
zlib-1.2.8.tar.gz
openssl-1.0.2h.tar.gz
基本上都能從sourceforge上獲取, 或直接用搜尋引擎去找download
然後需要在Nginx源碼根目錄下創建“objs” 和“objs/lib” 兩級目錄, 將以上三個庫解壓縮到objs/lib 下
註: 這三個第三方函式庫其實也是原始碼形式, 並沒有lib或dll, 都需要一起編譯
然後需要執行設定, 指令是
auto/configure –with-cc=cl –builddir=objs –prefix=
–conf-path=conf/nginx.conf –pid-path=logs/nginx.pid
–http-log-path=logs/access.log –error-log-path=logs/error.log
–sbin-path=nginx.exe –http-client-body-temp-path=temp/client_body_temp
–http-proxy-temp-path=temp/proxy_temp
–http-fastcgi-temp-path=temp/fastcgi_temp
–with-cc-opt=-DFD_SETSIZE=1024 –with-pcre=objs/lib/pcre-8.39
–with-zlib=objs/lib/zlib-1.2.8 –with-openssl=objs/lib/openssl-1.0.2h
–with-select_module –with-http_ssl_module –with-ipv6
但這個命令是無法直接在 Windows 命令列中執行的, 需要一個Linux環境, 方法便是使用 MinGW, 裡面有一個MSYS 的工具, 類似 Linux 中的 bash
開啟網站 http://www.mingw.org/wiki/MSYS 下載 MinGW 的 Installer, 注意: 這只是一個安裝器
最後下載下來的檔案是 mingw-get-setup.exe, 很小不到 1MB, 雙擊安裝
要注意的是, 安裝路徑可以修改, 但路徑中不能有空格(中文應該也不行, 沒試過)
真正的安裝過程也不快,需要在線下載很多東西
安裝完成, 點選 Continue 會直接開啟一個管理介面
接下來勾選上 Basic Setup 裡的 msys-base, 然後 Apply Changes, 開始安裝msys
這個過程也不快, 需要等幾分鐘
以上就介紹了 Nginx 在 Windows 平台上編譯,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。