Homebrew Nginx未运行,但表示正在提供brew服务

pvcm50d1  于 2023-01-08  发布在  Nginx
关注(0)|答案(4)|浏览(183)

我有OSX El Capitan。我通过自制程序安装了Nginx-Full。我应该能够使用以下命令启动和停止服务
酿造服务Nginx-全面启动
我运行该命令,它似乎启动没有问题。
brew服务列表
这表示Nginx-Full服务正在运行。
顶部
要查看正在运行Nginx的所有内容,没有显示,服务器不处理请求。

ohfgkhjo

ohfgkhjo1#

nginx由于错误而无法启动,但brew-services没有通知您。

正如其他用户所建议的那样,用sudo运行它只是掩盖了问题,如果直接运行nginx,您可能会看到实际上存在一个配置或权限问题,导致nginx中止,在我的例子中,这是因为它无法写入错误日志:

nginx: [alert] could not open error log file: open() "/usr/local/var/log/nginx/error.log" failed (13: Permission denied)
2020/04/02 13:11:53 [warn] 19989#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /usr/local/etc/nginx/nginx.conf:2
2020/04/02 13:11:53 [emerg] 19989#0: open() "/usr/local/var/log/nginx/error.log" failed (13: Permission denied)

最后一个错误导致nginx无法启动。您可以使用以下命令使自己成为日志的所有者:
sudo chown -R $(whoami) /usr/local/var/log/nginx/
这 * 应该 * 会导致随后的配置错误被写入错误日志,即使homebrew服务现在没有在stderr/stdout中报告它们。
我已为此打开一个问题:https://github.com/Homebrew/homebrew-services/issues/215
每个人的日志路径可能不一样。您可以通过检查配置文件/usr/local/etc/nginx/nginx.conf来检查日志文件的路径。您可以找到如下行:error_log /Users/myusername/somepath/nginx.log;。相应地更改上面的chown命令。如果即使这样也不能解决问题,您可能必须对nginx配置中server块中指定的任何其他日志文件执行相同的操作

olhwl3o2

olhwl3o22#

试着用“sudo”启动它,即使公式说
/usr/local/etc/nginx/nginx.conf中的默认端口已设置为8080,以便nginx可以在没有sudo的情况下运行。

sudo brew services Nginx-Full start
mwyxok5s

mwyxok5s3#

这对我很有效:
第一个月

g2ieeal7

g2ieeal74#

运行sudo nginx对我很有效,它最初给出了一些错误,说明某个目录中的某个文件丢失,创建该文件,然后要求创建另一个文件,然后它正常运行。
我有类似的问题,运行它brew services start nginx用来显示nginx运行。
但是brew services list用于显示错误。
运行sudo nginx解决了我的问题

相关问题