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。
1
lululau 2019-09-03 07:50:31 +08:00 via iPhone
Mojave 好像没有特权端口的概念了,不需要 sudo,我是用 Alfred 管理 homebrew 安装的服务,比命令行方便
|
2
lululau 2019-09-03 07:51:05 +08:00 via iPhone 1
github:lululau/homebrew-services-alfred-workflow
|
3
tulongtou 2019-09-03 08:48:19 +08:00 via iPhone
这种 sudo 启动的服务,重启电脑会自动启动嘛?
|
4
Livid MOD OP @tulongtou 会。sudo 的意思是这个服务会以 root 的权限去管理。如果不加 sudo,那么 brew 会用当前普通用户的权限去管理服务。
|
5
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 权限的含义 |
6
toyassb 2019-09-03 09:20:50 +08:00 1
两种方法主要区别在于启动时机(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 |
7
richzhu 2019-09-03 09:35:52 +08:00 via iPhone
因为只有 root 权限才能管理 1000 一下的端口,你改到 1000 以上试试,应该不用 sudo
|
8
secretman 2019-09-03 10:08:08 +08:00
运行服务用 root 有风险吧,应该用专门建立的服务账户
|