macos编译安装nginx

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

网上主流的方法安装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,大功告成

在这里插入图片描述

<think>嗯,用户的需求很明确:想在macOS安装Nginx。从引用的资料来看,用户已经做了功课,尝试过brew安装但失败,也看到了离线安装和Docker安装的方案。用户可能是个开发者或运维人员,环境是macOS10.15.2这个较老的系统版本,所以需要特别注意兼容性问题。用户提供的引用内容很全面,包含三种主流安装方式:1)Homebrew安装(引用3最详细)2)离线源码编译(引用1-2提到需要openssl和pcre依赖)3)Docker容器化部署(引用5)考虑给出全面但层次分明的解决方案。优先推荐用户重试brew安装,因为这是最主流的方式——引用3显示brew能自动处理依赖,还能管理服务状态。用户上次失败可能是网络问题或权限问题,需要强调通过brewdoctor和sudochown解决权限问题。对于喜欢控制细节的用户,源码安装方案要详细列出openssl和pcre的编译参数,引用2的pcre路径示例特别有参考价值。Docker方案反而最简单,但用户得先安装DockerDesktop。关键要注意的是配置文件位置在不同安装方式下的差异:-Brew安装的在/usr/local/etc/nginx(引用3、4)-源码安装的在/usr/local/nginx/conf(引用2)-Docker的需要挂载卷(引用5)安全方面要提醒80端口需要sudo权限,服务管理命令差异(brewservicesvsnginx命令)。最后用访问http://127.0.0.1测试作为通用验证步骤,三种方式都适用。相关问题要覆盖用户后续可能遇到的典型问题:配置文件修改、SSL设置、版本切换。特别是brew安装失败排查应该单列,这是用户遇到过的痛点。Docker相关问题也值得补充,因为引用5提供了具体的挂载目录示例。</think> 在 macOS安装 Nginx 主要有以下三种方法,根据需求和环境选择最适合的方式: --- ### 方法一:使用 Homebrew 安装(推荐) **适用场景**:便捷管理、自动处理依赖 **步骤**: 1. 安装 Homebrew(若未安装): ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` 2. 安装 Nginx: ```bash brew install nginx ``` - 安装指定版本:`brew install nginx@1.23` 3. 启动 Nginx: ```bash brew services start nginx # 后台运行 # 或 nginx # 前台运行 ``` 4. **验证**:浏览器访问 `http://127.0.0.1`,显示 "Welcome to nginx" 即成功[^3][^4]。 5. **关键目录**: - 配置文件:`/usr/local/etc/nginx/nginx.conf` - 默认网站目录:`/usr/local/var/www` --- ### 方法二:源码编译安装 **适用场景**:需自定义模块或参数 **步骤**: 1. 安装依赖(OpenSSL、PCRE): ```bash brew install openssl pcre ``` 2. 下载并解压 Nginx 源码([官网下载](https://nginx.org/en/download.html)): ```bash tar -xzvf nginx-1.25.3.tar.gz cd nginx-1.25.3 ``` 3. 配置并安装(指定依赖路径): ```bash ./configure \ --with-pcre=$(brew --prefix pcre) \ --with-openssl=$(brew --prefix openssl) make && sudo make install ``` 4. 启动 Nginx: ```bash cd /usr/local/nginx/sbin sudo ./nginx ``` 5. **验证**:同上访问 `http://127.0.0.1`[^2]。 --- ### 方法三:Docker 安装 **适用场景**:隔离环境、快速部署 **步骤**: 1. 安装 [Docker Desktop](https://www.docker.com/products/docker-desktop/) 2. 创建本地目录(存放配置和网页): ```bash mkdir -p ~/docker/nginx/{conf,html,logs} ``` 3. 运行容器(挂载目录): ```bash docker run -d \ --name nginx \ -p 80:80 \ -v ~/docker/nginx/html:/usr/share/nginx/html \ -v ~/docker/nginx/conf:/etc/nginx/conf.d \ -v ~/docker/nginx/logs:/var/log/nginx \ nginx ``` 4. **验证**:访问 `http://127.0.0.1`[^5]。 --- ### 常见问题解决 - **权限问题**: 若启动报错 `Permission denied`,在命令前加 `sudo`。 - **端口冲突**: 检查是否有其他进程占用 80 端口:`sudo lsof -i:80` - **Brew 安装失败**: 更新 Homebrew:`brew update && brew upgrade` 修复权限:`sudo chown -R $(whoami) /usr/local/*` ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值