我最近迁移到Mac OSX Yosemite 10.10,并遵循了本教程。
为了设置我的机器,在经历了很多打嗝之后,我终于找到了一个点,我发现只有一个问题是由于nginx端口问题引起的。
如果我做
sudo nginx
我得到这个
nginx: [emerg] bind() to 0.0.0.0:443 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:306 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:306 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:306 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:306 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:306 failed (48: Address already in use)
nginx: [emerg] still could not bind()
这意味着443和306端口正在其他地方使用
当我做时
sudo lsof -i:443
我得到这个
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 548 root 13u IPv4 0xce9cf564560ec22b 0t0 TCP *:https (LISTEN)
nginx 549 nobody 13u IPv4 0xce9cf564560ec22b 0t0 TCP *:https (LISTEN)
类似于sudo lsof -i:306
我得到
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 548 root 14u IPv4 0xce9cf564560ed3cb 0t0 TCP *:306 (LISTEN)
nginx 549 nobody 14u IPv4 0xce9cf564560ed3cb 0t0 TCP *:306 (LISTEN)
现在,如果nginx已经在使用这些端口,为什么它声称Address已经在使用
当我在浏览器中运行我的应用程序时,说abc.dev.com
我没有得到来自服务器的响应,在一段时间后,浏览器只是告诉我
连接已超时abc.dev.com上的服务器响应时间过长。
如果我做curl http://abc.dev.com
,我会得到
curl:(7)无法连接到abc.dev.com端口80:操作超时
如果我做
nginx.start
我得到这个:
/Library/LaunchDaemons/homerew.ml.nginx.plist:操作已在进行中
如果我这样做::
nginx.stop
//它有效,我认为它停止了
如果我这样做:
nginx.restart
我得到这个:
/Library/LaunchDaemons/homerew.ml.nginx.plist:找不到指定的服务
我已经没有什么想法了,想不出任何可能导致这种情况的原因。非常感谢任何想法。。。
谢谢你的帮助。
您在此处链接的指南的作者。似乎你设法让Nginx在没有正确LaunchDaemon的情况下运行。
你能确保当你输入"nginx.stop
"时,这个过程真的停止了吗?(ps aux
)。
关于"nginx.restart
"时的最后一个错误:这很正常,因为您之前已经使用"nginx.stop
"停止了服务。因此,重新启动(实际上:stop&&start)会出现错误,因为它试图停止已经停止的服务。
无论如何,由于您的问题在很大程度上取决于指南/相关,我不确定StackOverflow是否是进行此讨论的合适位置。让我们更好地在指南的评论部分继续。