目 录CONTENT

文章目录

Mac 80端口被占用

ABin
2023-04-22 / 0 评论 / 0 点赞 / 36 阅读 / 0 字

Mac 自带Apache自动启动,导致80端口被占用

运行nginx 时提示

% nginx 
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()

去访问http://localhost 会提示 It works!

解决方法

  1. 关闭Mac电脑自带的Apache
  2. 使用自带Apache进行网页搭建
  3. 遇到的问题
  4. 总结

1.关闭Mac电脑自带的Apache

#查看httpd进程 (已经启动)
% ps -A | grep httpd                                                         
39477 ??         0:00.20 /usr/sbin/httpd -D FOREGROUND
39481 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND

#终端输入  关闭Apache启动
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
#(因为使用了sudo 所以需要输入电脑开机密码)

#终端输入 开启Apache
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

2.使用自带Apache 搭建网页

  • 项目根目录:/Library/WebServer/Documents (root权限才能编辑index.html.en)
  • 配置文件目录:/private/etc/apache2 (root权限才能编辑httpd.config)
  • log 目录:/private/var/log/apache2
#查看帮助文档 ( pgup,pgdown(翻页) 上下方向键 或 j k 显示上下一行    q退出)
man httpd


#启动和关闭
//开启
sudo apachectl start

//重启
sudo apachectl restart

//关闭
sudo apachectl stop

#测试配置文件是否正确
sudo apachectl configtest
#或
sudo apachectl -t

修改项目根目录

打开 /private/etc/apache2/httpd.config

#找到DocumentRoot 替换以下两处 然后
 
DocumentRoot "/Users/UserName/test/webServer"
<Directory "/Users/UserName/test/webServer">

3.问题

如果上方两个路径不同访问http://localhost页面时会出现下方提示

Forbidden

You don't have permission to access this resource.

4.总结

  • 不管是启动、停止、重启、 都需要root 权限
  • 修改配置文件 也需要root权限保存
  • 没有找到重载配置文件的方法,只能通过重启Apache 来解决
  • 我已经做出了我的选择,禁用掉,用自己比较熟悉的Nginx

0

评论区