关于用 Homebrew 安装 NGINX 并改成 80 端口启动

2019-09-03 07:03:22 +08:00
 Livid

Homebrew 的一些机制一直在变,所以有的时候如果用关键字直接搜索,可能会找到一些过时的信息。

在目前版本的 macOS Mojave 里,用 Homebrew 安装 NGINX 并改为 80 端口启动的最简洁的步骤是:

brew install nginx

会安装目前最新的 1.17.3 版本。

然后把配置文件里的默认的 8080 改为 80:

vi /usr/local/etc/nginx/nginx.conf

然后,在第一次启动 NGINX 服务的时候,需要用 sudo,因为使用了特权端口 80:

sudo brew services start nginx

如果你安装了其他也需要使用特权端口的服务,比如需要使用 53 端口的 DNSCrypt-Proxy,那么也需要在第一次启动的时候用 sudo。之后如果 restart 的时候也需要用 sudo。

4904 次点击
所在节点    Homebrew
8 条回复
lululau
2019-09-03 07:50:31 +08:00
Mojave 好像没有特权端口的概念了,不需要 sudo,我是用 Alfred 管理 homebrew 安装的服务,比命令行方便
lululau
2019-09-03 07:51:05 +08:00
github:lululau/homebrew-services-alfred-workflow
tulongtou
2019-09-03 08:48:19 +08:00
这种 sudo 启动的服务,重启电脑会自动启动嘛?
Livid
2019-09-03 08:49:38 +08:00
@tulongtou 会。sudo 的意思是这个服务会以 root 的权限去管理。如果不加 sudo,那么 brew 会用当前普通用户的权限去管理服务。
liujj
2019-09-03 09:00:35 +08:00
在命令行依次执行这两条命令就可以,以后每次 brew 更新了 nginx,都要以相应的版本执行一遍
sudo chown root:wheel /usr/local/Cellar/nginx/1.17.3/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.17.3/bin/nginx
关于原理,可以搜索一下 linux 文件 mod 中 user 位 s 权限的含义
toyassb
2019-09-03 09:20:50 +08:00
两种方法主要区别在于启动时机(login \boot )


Start the MySQL service at login with:
brew services start mysql

Start the Dnsmasq service at boot with:
sudo brew services start dnsmasq

https://github.com/Homebrew/homebrew-services
richzhu
2019-09-03 09:35:52 +08:00
因为只有 root 权限才能管理 1000 一下的端口,你改到 1000 以上试试,应该不用 sudo
secretman
2019-09-03 10:08:08 +08:00
运行服务用 root 有风险吧,应该用专门建立的服务账户

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597382

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX