You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 17.10安装Valet时Nginx启动失败求助(端口80被占用)

解决Ubuntu 17.10上Nginx因端口占用启动失败的问题

从你提供的报错日志来看,Nginx启动失败的核心原因非常明确:80端口已经被其他进程占用,日志里反复出现的bind() to [::]:80 failed (98: Address already in use)就是直接证据。下面是具体的解决步骤:

1. 找出占用80端口的进程

你可以用以下两个命令中的任意一个来定位占用80端口的进程:

  • 使用lsof命令:
    sudo lsof -i :80
    
    执行后会列出占用80端口的进程名称、PID(进程ID)等详细信息。
  • 使用netstat命令:
    sudo netstat -tulpn | grep :80
    
    这个命令同样能帮你找到占用端口的进程及其PID。

2. 处理占用端口的进程

根据占用进程的情况,有两种处理方式:

方式一:停止并禁用不需要的进程

如果占用80端口的是你不需要的服务(比如之前安装的Apache、其他Web服务器),直接停止该服务并禁止它开机自动启动:
以Apache为例:

sudo systemctl stop apache2
sudo systemctl disable apache2

完成后再尝试启动Nginx:

sudo systemctl start nginx

方式二:修改Nginx的监听端口

如果占用80端口的进程是你需要保留的,那可以修改Nginx的监听端口(比如改成8080):

  1. 编辑Nginx的主配置文件:
    sudo nano /etc/nginx/nginx.conf
    
  2. 找到配置中类似以下的行:
    listen 80;
    listen [::]:80;
    
    将80替换成你想要的端口(比如8080)。
  3. 保存并退出编辑器后,先测试Nginx配置是否合法:
    sudo nginx -t
    
    如果输出显示test is successful,就可以重启Nginx:
    sudo systemctl restart nginx
    

3. 验证Nginx是否正常启动

执行以下命令查看Nginx的状态:

sudo systemctl status nginx.service

如果状态显示为active (running),就说明启动成功了。如果修改了端口,也可以在浏览器中访问http://localhost:8080(替换成你设置的端口),能看到Nginx的默认欢迎页面就代表没问题。

内容的提问来源于stack exchange,提问作者frtgu34

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:05:33