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

苏南大叔的mac系统,apache其实不工作好几次了。每次坏掉之后,都是重装系统了事。不过,最近,apache又不工作了,试图使用brew重装apache,甚至nginx,都有着类似的问题。

这些问题,具体表现有:
1:用brew services start nginx,没有反应。
2:用sudo httpd或者sudo nginx,是正常的。
3:默认是8080端口,正常工作。改到80端口后,不正常。

在探索这些可能的解决方案的时候,最终得出的结论是,一是卸载不干净,二是与权限有关系。按照惯例,先说解决方法,再说解决过程。方法其实很简单。

apache

brew uninstall --ignore-dependencies httpd24    #如果是用brew安装过的话,就需要这句话
sudo rm -rf /usr/sbin/httpd               #命令行里面的命令位置
sudo rm -rf /usr/sbin/apachectrl          #命令行里面的命令位置
sudo rm -rf /etc/apache2/                  #系统自带的配置位置
sudo rm -rf /usr/local/etc/apache2/       #brew安装的配置位置
launchctl unload /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist   #不一定用得上
launchctl unload /Library/LaunchAgents/homebrew.mxcl.httpd24.plist    #不一定用得上
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.httpd24.plist
brew install httpd24                 #会重新创建上述删除的文件
vi /usr/local/etc/apach2/httpd.conf  #修改端口80,增加php扩展之类的
sudo chown root:wheel /usr/local/cellar/httpd24/2.4.27/bin/httpd   #重点
sudo chmod u+s        /usr/local/cellar/httpd24/2.4.27/bin/httpd     #重点
sudo chown root:wheel /usr/local/cellar/httpd24/2.4.27/bin/apachectl   #重点
sudo chmod u+s        /usr/local/cellar/httpd24/2.4.27/bin/apachectl     #重点
sudo chown root:wheel /usr/local/etc/apache2/     #可能用的到

nginx

brew uninstall --ignore-dependencies nginx    #如果是用brew安装过的话,就需要这句话
sudo rm -rf /usr/local/etc/nginx/             #brew安装的配置位置
launchctl unload /Library/LaunchDaemons/homebrew.mxcl.nginx.plist   #不一定用得上
launchctl unload /Library/LaunchAgents/homebrew.mxcl.nginx.plist    #不一定用得上
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
brew install nginx                 #会重新创建上述删除的文件
vi /usr/local/etc/nginx/nginx.conf  #修改端口80之类的

重点中的重点,如下,注意替换nginx的版本号。

sudo chown root:wheel /usr/local/Cellar/nginx/1.12.1/bin/nginx      #重点
sudo chmod u+s /usr/local/Cellar/nginx/1.12.1/bin/nginx             #重点
sudo chmod root:wheel /usr/local/etc/nginx/     #可能用的到

mac系统的80端口的那些事 - port80
mac系统的80端口的那些事(图2-1)

整体的思路

清除原有的残余文件,系统加载。修改端口80后,对应的程序需要更高的权限。据说只要是1024下面的端口监听,都需要特殊的权限。而brew并没有考虑这个问题,而且卸载的时候,并不会删除配置文件。这可能就是症结所在。
当然,上述路径位置,在你读到这篇文章的时候,可能发生了变化(比如版本号)。所以,大家就领会精神就行了。

mac系统的80端口的那些事 - 012
mac系统的80端口的那些事(图2-2)

由苏南大叔提供的,apache相关的文章可以点击这里: https://newsn.net/tag/apache/
nginx相关的文章可以点击这里: https://newsn.net/tag/nginx/

 【源码】代码片段及相关软件点此获取

 【mac】秘籍文章入口,仅传授于有缘之人   mac    nginx

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!