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

Tomcat本地运行正常,部署服务器后出现内部错误及端口占用问题

解决Tomcat启动端口占用导致的Internal Server Error问题

嘿,看了你的日志输出,问题根源非常清晰:Tomcat需要使用的8080(HTTP服务)和8009(AJP服务)端口已经被其他进程占用,导致Tomcat无法完成初始化启动,这就是你创建用户时出现Internal Server Error的直接原因。

下面给你几个可行的解决方案:

方案1:杀掉占用端口的进程

先找出占用目标端口的进程,然后终止它:

  • 用lsof命令查询占用8080端口的进程:
    lsof -i :8080
    
    输出里会显示进程的PID,用kill -9 <PID>命令杀掉该进程(把<PID>替换成实际的进程ID)。
  • 同理处理8009端口:
    lsof -i :8009
    kill -9 <PID>
    

如果服务器没有安装lsof,可以用netstat替代:

netstat -tulpn | grep 8080
netstat -tulpn | grep 8009

找到对应的进程PID后,同样用kill -9 <PID>终止。

方案2:修改Tomcat的端口配置

如果不想终止占用端口的进程,可以修改Tomcat的端口配置,让它使用其他未被占用的端口:

  1. 打开Tomcat安装目录下的conf/server.xml文件。
  2. 找到HTTP连接器的配置段,修改port属性为未被占用的端口(比如8081):
    <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    
  3. 找到AJP连接器的配置段,修改port属性为未被占用的端口(比如8010):
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
    
  4. 保存文件后,重新启动Tomcat。

方案3:检查残留的Tomcat进程

有时候Tomcat可能没有正常关闭,残留进程占用了端口,你可以先检查是否有Tomcat进程在运行:

ps aux | grep tomcat

如果发现残留的Tomcat进程,用kill -9 <PID>杀掉后,再重新启动Tomcat。

完成以上操作后,Tomcat应该能正常启动,创建用户的功能也会恢复正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:24:30