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)
4条答案
按热度按时间ohfgkhjo1#
nginx由于错误而无法启动,但brew-services没有通知您。
正如其他用户所建议的那样,用
sudo
运行它只是掩盖了问题,如果直接运行nginx
,您可能会看到实际上存在一个配置或权限问题,导致nginx中止,在我的例子中,这是因为它无法写入错误日志:最后一个错误导致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
块中指定的任何其他日志文件执行相同的操作olhwl3o22#
试着用“sudo”启动它,即使公式说
/usr/local/etc/nginx/nginx.conf中的默认端口已设置为8080,以便nginx可以在没有sudo的情况下运行。
mwyxok5s3#
这对我很有效:
第一个月
g2ieeal74#
运行
sudo nginx
对我很有效,它最初给出了一些错误,说明某个目录中的某个文件丢失,创建该文件,然后要求创建另一个文件,然后它正常运行。我有类似的问题,运行它
brew services start nginx
用来显示nginx运行。但是
brew services list
用于显示错误。运行
sudo nginx
解决了我的问题