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

今天在mac上运行nginx,发现一直报错:

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

查到的解决方法是nginx自己占用了80端口,又把自己block住,只要killall -9 nginx 即可。

试了下,发现根本找不到nginx进程。

使用ps -ef | grep nginx 也同样找不到。

于是查看是哪些进程占用了80端口:lsof -i:80

把对应的程序都关闭掉,发现依然不行。

通过浏览器访问http://localhost发现得到的页面根本没有在nginx的任何地方定义过。也就是说当前服务器启动的并不是nginx。

用chrome的开发者工具查看了下响应消息,响应消息的powdered-by字段赫然写着apache。

猛然想起来前不久为了测试一个php项目,启用了mac自带的apache服务器。

于是果断 sudo apachectl stop终止掉apache服务。问题解决。

顺带提一句,当nginx -s reload命令出现:nginx: [error] open()"/opt/local/var/run/nginx/nginx.pid" failed (2: No such file ordirectory)错误的话,解决办法:

nginx -c /opt/local/etc/nginx/nginx.conf(your/path/to/config/file)

你可能感兴趣的:(nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use))