macos编译安装nginx

本文介绍了如何在macos上通过源码编译安装nginx,避免使用brew安装导致的目录零散问题。详细步骤包括创建nginx主目录,下载PCRE、zlib、openssl和nginx源码,配置编译选项,执行编译和安装。同时,文章提醒了不设置KERNEL_BITS=64可能遇到的问题,以及需要放置favicon.ico以避免错误日志。最后,启动nginx并访问localhost完成配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上主流的方法安装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,相关版本看下图

在这里插入图片描述
进入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,大功告成

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值