macos 10.12編譯安裝nginx1.12.2
網上對mac安裝nginx的做法大多是用brew,但是我個人不喜歡這些包管理工具篙程,用這些工具沒有掌控感缕粹,所以使用源碼安裝,其實nginx的官方安裝文檔很詳細月培,只是有些地方需要特殊配置
- 首先創(chuàng)建一個nginx的總目錄/usr/local/nginx-1.12.2狈茉,然后分別下載最新版本的PCRE夫椭、zlib、openssl论皆、nginx的源碼放到總目錄下益楼,注意前三個工具不需要手動編譯,編譯nginx的時候會自動編譯它們点晴。我這里把nginx源碼的文件夾改成了nginx-1.12.2-source感凤,相關版本看下圖
- 進如nginx-1.12.2-source文件夾,順序執(zhí)行:
export KERNEL_BITS=64
./configure --prefix=/usr/local/nginx-1.12.2 --with-http_ssl_module --with-pcre=../pcre-8.41 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.0.2n
# 先使用普通權限make粒督,有permission denied的時候再用sudo
make
sudo make
sudo make install
相關說明
- 如果不執(zhí)行export KERNEL_BITS=64陪竿,直接執(zhí)行./configure的話,make的時候會給出一個警告屠橄,然后報錯族跛。這個問題的解決辦法是在openresty的github issue中有人留言的
WARNING! If you wish to build 64-bit library, then you have to
invoke './Configure darwin64-x86_64-cc' *manually*.
You have about 5 seconds to press Ctrl-C to abort.
中間的編譯信息省略...
ld: symbol(s) not found for architecture x86_64 collect2: ld
returned 1 exit status make[2]: *** [objs/nginx]
Error 1 make[1]: *** [build]
Error 2 make: ***
[all] Error 2
- mac其實自帶了openssl工具,但是版本很低锐墙,而且我沒有找到庫在哪礁哄,只有一個openssl的可執(zhí)行文件,所以直接下載的最新版源碼溪北。如果nginx不需要https服務模塊桐绒,可以不用openssl庫,不用openssl庫的話上面的問題應該也碰不到
- 需要放一個favicon.ico圖片在html目錄下之拨,否則會在錯誤日志中打印找不到這個文件
- 如果想要在單機上開啟多個nginx實例茉继,需要重新編譯,改變下prefix蚀乔,保證編譯出來的兩個nginx/conf/nginx.conf中的listen端口不同就可以烁竭,然后再配一個keepalived就完全可以在單機上模擬了ha環(huán)境