2013-11-01 62 views
20

我一直在使用nginx的为没有问题了几个月,但升级到Mac OS X 10.9小牛后,尝试启动nginx的,当我得到这个:nginx的启动失败,在Mac OSX上10.9小牛

nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use) 
nginx: [emerg] still could not bind() 

我试图按照these directions,但我没有多少运气,因为我的输出看起来有点不同。

的输出:

ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)' 

是:

PID PPID %CPU  VSZ WCHAN COMMAND 
15015 12765 0.0 2432784 -  egrep (nginx|PID) 

我试图杀死进程使用PID,但它似乎永远不会死......如何获得任何想法nginx再次运行?任何帮助是极大的赞赏!!

+1

尝试看看进程正在侦听到80,也许ü安装Apache或类似的 –

+0

我有一个“绑定了同样的问题的东西()到0.0.0.0:80失败(13:权限被拒绝)“。它不会给我权限被拒绝,如果我将端口更改为8000 – Adi

+1

可能的其他解决方案,如果(像我一样)Nginx为您启动罚款,但您的日志仍然不断收到垃圾邮件与此错误:http:// serverfault。 com/a/548741/23206 –

回答

44

您的ps ... | egrep命令找到自己,而不是nginx的实例(请看“COMMAND”列)。由于端口80正在使用,它可能是其他程序(可能是OS附带的Apache?)正在运行并抓取它。为了找到答案,运行:

sudo lsof -i:80 

如果它是系统的Ap​​ache(包含“httpd”)的程序,你也许可以将其关闭以:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 

如果不这样做,更多信息将需要弄清楚什么是抓住端口80以及它是如何开始的。

+1

这个修复了!!!男人,谢谢。我一直在寻找数周。 – gjunkie

+1

4年后,仍然适用于你们google的那些人。 – mattelliottIT

1

可能仍然nginx的运行过程中出现,并监听端口80。试试这个命令

sudo killall nginx