macos 10.12编译安装nginx1.12.2

macos 10.12编译安装nginx1.12.2

网上对mac安装nginx的做法大多是用brew,但是我个人不喜欢这些包管理工具,用这些工具没有掌控感,所以使用源码安装,其实nginx的官方安装文档很详细,只是有些地方需要特殊配置

  • 首先创建一个nginx的总目录/usr/local/nginx-1.12.2,然后分别下载最新版本的PCRE、zlib、openssl、nginx的源码放到总目录下,注意前三个工具不需要手动编译,编译nginx的时候会自动编译它们。我这里把nginx源码的文件夹改成了nginx-1.12.2-source,相关版本看下图
    macos 10.12编译安装nginx1.12.2_第1张图片
  • 进如nginx-1.12.2-source文件夹,顺序执行:
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

相关说明

  1. 如果不执行export KERNEL_BITS=64,直接执行./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
  1. mac其实自带了openssl工具,但是版本很低,而且我没有找到库在哪,只有一个openssl的可执行文件,所以直接下载的最新版源码。如果nginx不需要https服务模块,可以不用openssl库,不用openssl库的话上面的问题应该也碰不到
  2. 需要放一个favicon.ico图片在html目录下,否则会在错误日志中打印找不到这个文件
  3. 如果想要在单机上开启多个nginx实例,需要重新编译,改变下prefix,保证编译出来的两个nginx/conf/nginx.conf中的listen端口不同就可以,然后再配一个keepalived就完全可以在单机上模拟了ha环境

你可能感兴趣的:(macos 10.12编译安装nginx1.12.2)