将Spring Boot Freemarker应用部署至cPanel Tomcat服务器遇阻求助
问题分析与解决方案
核心问题点
- Context配置冲突:你在
server.xml里配置了path=""的Context,指向/home/user/public_html,这会把该目录设为Tomcat的ROOT应用(默认上下文)。而你的platform.war部署后会以/platform作为上下文路径,两者会导致请求路由混乱。 - 拼写错误:
server.xml里的autoDeploay是拼写错误,正确应为autoDeploy,这个错误会导致Tomcat自动部署功能失效。 - 手动创建同名文件夹:你手动创建了与WAR包同名的
platform文件夹,Tomcat部署时会优先选择已存在的目录而非解压WAR包,可能导致部署的内容不是你最新的WAR包内容。
修正步骤
1. 修复server.xml配置
修改server.xml中的Host配置,删除多余的Context节点,同时修正拼写错误:
<Host name="user.host" appBase="/home/user/public_html" unpackWARs="true" deployXML="true" autoDeploy="true"> <Alias>www.user.host</Alias> <Alias>user.host</Alias> <!-- 移除原有的path=""的Context节点 --> </Host>
说明:
appBase已经设置为public_html,Tomcat会自动把该目录下的WAR包部署为对应上下文的应用,无需额外配置Context。
2. 清理冗余文件
- 删除
public_html下手动创建的platform文件夹 - 确保
platform.war是你要部署的最新版本
3. 调整访问路径配置(可选)
如果希望通过域名根路径访问你的应用(而非user.host/platform),可以把WAR包重命名为ROOT.war;如果保留platform.war,则访问路径应为http://user.host/platform。.htaccess配置保持现有内容即可:
SetHandler jakarta-servlet SetEnv JK_WORKER_NAME ajp13
4. 重启Tomcat
保存所有配置修改后,重启Tomcat服务,让配置生效。
验证部署
查看Tomcat日志,确认部署成功:
- 日志中应显示
Deployment of web application archive [/home/user/public_html/xxx.war] has finished的成功信息 - 访问对应路径(根路径或
/platform),检查是否能正常加载Spring Boot Freemarker页面
内容的提问来源于stack exchange,提问作者mikegrep
相关产品推荐
相关产品推荐

