Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 107|回复: 0

apache2 由于端口占用启动失败

[复制链接]

504

主题

691

帖子

4099

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4099
发表于 2026-4-12 03:20:47 | 显示全部楼层 |阅读模式
端口冲突。
从日志 AH00072: make_sock: could not bind to address [::]:80 和 (98)Address already in use 可以看出,Apache 无法启动是因为 80 端口(HTTP 默认端口)已经被其他程序占用了。
1. 查找占用 80 端口的进程
使用 lsof 或 netstat 命令查看是谁占用了端口:
  1. sudo lsof -i :80
复制代码
或:
  1. sudo netstat -tulpn | grep :80
复制代码
显示:
  1. COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
  2. nginx    1234   root    6u  IPv4  12345      0t0  TCP *:http (LISTEN)
复制代码
2. 决定如何处理占用端口的程序
根据查到的程序名称,选择以下一种方案:
情况 A:是 Nginx 占用了端口
如果你打算使用 Apache,需要停止并禁用 Nginx:
  1. # 立即停止 Nginx
  2. sudo systemctl stop nginx

  3. # 禁止 Nginx 开机自启(可选,防止下次重启又冲突)
  4. sudo systemctl disable nginx
复制代码


情况 B:是另一个 Apache 实例占用了端口
可能是配置错误导致的重复启动,或者是一个残留进程。先强制结束它:

  1. # 替换 1234 为刚才查到的实际 PID
  2. sudo kill -9 1234
复制代码
或者使用apache自带的控制脚本清理:
  1. sudo apache2ctl stop
复制代码
3. 再次尝试启动 Apache
清理完占用端口的程序后,重新启动 Apache:

  1. sudo systemctl start apache2
复制代码
4. 验证状态
检查 Apache 是否正常运行:

  1. sudo systemctl status apache2
复制代码



备选方案:修改端口(如果你必须保留原来的程序)
如果你需要同时运行两个 Web 服务器(例如测试环境),可以修改 Apache 的监听端口,而不是停止原来的程序。
编辑配置文件:
bash

编辑



sudo nano /etc/apache2/ports.conf
修改监听端口:
找到 Listen 80,将其修改为一个未被占用的端口,例如 8080:
apache

编辑



Listen 8080
同时,打开 /etc/apache2/sites-available/000-default.conf,将 <VirtualHost *:80> 修改为 <VirtualHost *:8080>。
重启服务:
bash

编辑



sudo systemctl restart apache2
现在你可以通过 http://你的服务器IP:8080 来访问 Apache。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2026-5-16 15:52 , Processed in 0.012531 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表