本博客不欢迎:各种镜像采集行为,请尊重知识产权法律法规。大家都是程序员,不要闹得不开心。

苏南大叔的mac最近自动升级成了macos mojave,然后发现nginx不能正常工作了。经过了排查发现,是系统升级后,apache的配置文件被重新覆盖,导致80端口不能被nginx占用到。这是一个冷笑话...

苏南大叔:mac 系统升级后,nginx 不能正常工作的解决方案 - system-version
mac 系统升级后,nginx 不能正常工作的解决方案(图4-1)

本文测试环境:mac10.14

现象描述

经过检测,nginx的配置文件无误,但是nginx -s reload却报错。错误如下:

苏南大叔:mac 系统升级后,nginx 不能正常工作的解决方案 - nginx_error
mac 系统升级后,nginx 不能正常工作的解决方案(图4-2)

访问本机80端口,出现的是apache的界面,而不是nginx的界面,下面的是苏南大叔提供的对比图。

苏南大叔:mac 系统升级后,nginx 不能正常工作的解决方案 - nginx-apache-ui
mac 系统升级后,nginx 不能正常工作的解决方案(图4-3)

解决方案

解决方案也很简单,就是修改apache的配置文件httpd.conf,路径是:/etc/apache2/httpd.conf。找到大概第56行,把80字样改成8080即可。当然,8080也可以换成你喜欢的其他端口,只要不是80即可。

<IfDefine SERVER_APP_HAS_DEFAULT_PORTS>
    Listen 8080
</IfDefine>
<IfDefine !SERVER_APP_HAS_DEFAULT_PORTS>
    Listen 8080
</IfDefine>

解除了apache80端口的占用,重启系统后,nginx就可以正常接管80了。

苏南大叔:mac 系统升级后,nginx 不能正常工作的解决方案 - apache
mac 系统升级后,nginx 不能正常工作的解决方案(图4-4)

您可能需要这条命令:

sudo apachectl restart
brew services restart nginx

相关文章

事实上,本文能够配置成功的关键因素还有:在系统升级前,nginx是能够正常使用80端口的。那么读者朋友可能还需要的经验文章如下:

《mac系统nginx和apache如何共存?》

总结

mac系统下,nginx如果想要占用80端口,还是真心困难重重的。大家加油!

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。