macos编译安装nginx

网上主流的方法安装nginx是通过brew方式,但是这种方式安装之后文件目录太零散,不方便查看和访问,所以这篇文章使用源码安装

可以先看一下安装完成之后和brew安装完成后的区别,nginx的目录conf、logs、sbin、html全部在指定的/usr/local/nginx-1.12.2下
在这里插入图片描述
目录结构说明,先忽略其他文件夹:

  • Conf 配置文件
  • Html 网页文件
  • Logs 日志文件
  • Sbin 二进制程序

首先创建一个nginx的总目录/usr/local/nginx-1.12.2,然后分别下载最新版本的PCRE、zlib、openssl、nginx的源码放到总目录下,注意前三个工具不需要手动编译,编译nginx的时候会自动编译它们。我这里把nginx源码的文件夹改成了nginx-1.12.2-source,相关版本看下图

macos编译安装nginx_第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 ( 先使用普通权限make,有permission denied的时候再用sudo)
sudo make install

相关说明

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

启动看一下

进入sbin目录,输入

./nginx
访问localhost,大功告成

macos编译安装nginx_第2张图片

你可能感兴趣的:(工具及配置)