Jakarta ee 如何将war文件部署到cPanel中并删除项目名称?

Jakarta ee 如何将war文件部署到cPanel中并删除项目名称?,jakarta-ee,tomcat,spring-mvc,struts2,cpanel,Jakarta Ee,Tomcat,Spring Mvc,Struts2,Cpanel,我需要在cPanel上运行Java应用程序。我已经成功安装了Tomcat 我可以通过将war文件复制到我的www文件夹来运行我的应用程序,但问题是它在地址中显示了项目名称(war文件名),我需要知道如何删除它,因此,用户可以访问www.example.com,而不是www.example.com/MyProject/index.jsp?根据命令,出于安全原因,cpanel通常会关闭访问提示,您必须特别请求。如果您具有此访问权限,则可以登录并运行解压命令(使用FileZilla或类似工具上载war

我需要在
cPanel
上运行Java应用程序。我已经成功安装了Tomcat

我可以通过将
war
文件复制到我的
www
文件夹来运行我的应用程序,但问题是它在地址中显示了项目名称(
war
文件名),我需要知道如何删除它,因此,用户可以访问
www.example.com
,而不是
www.example.com/MyProject/index.jsp

根据命令,出于安全原因,cpanel通常会关闭访问提示,您必须特别请求。如果您具有此访问权限,则可以登录并运行解压命令(使用FileZilla或类似工具上载war文件后)

如果您没有命令提示符访问权限,则可以将war上载到public_html目录,但在此之前,您需要更改apache配置并为此添加一个“JkMount”(请参见下面带有“appname”的目录)


现在,apache将针对mydomain.com/appname重新定向到tomcat,而不是mydomain.com:8080/appname。我们如何让它从mydomain.com开始工作?我根本不知道这个问题的答案。据我所知,使用将war文件更改为ROOT.war的常用技巧在cpanel中不起作用。

他们只需要在shell中解压.war归档文件。见:

如何部署.WAR应用程序-Ubiquity Web托管Wiki

我们有100多个用户使用了这些说明,效果非常好。如果您使用EasyApache部署Tomcat,并按照cPanel的设计进行设置,应该就到此为止了。这源自:


war文件的名称与容器如何表示项目无关-这只是配置问题,默认情况下,容器将上下文路径表示为文件名

使用ROOT.war只是一个愚蠢的技巧,请阅读Tomcat中的上下文配置(我假设您使用的是Tomcat)


有几种方法可以在tomcat中设置应用程序根上下文。所有这些都在服务器的文档中描述。这是另一个


修改
tomcat\u home\conf\server.xml
。在
下,您必须修复/usr/local/jakarta/tomcat/conf/server.xml上的条目,经过多次调整后,我使用了这个选项,它成功了:

<Host name="domain.com" appBase="/home/username/public_html" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" reloadable="true">
<Alias>www.domain.com</Alias>
<Context path="" reloadable="true" docBase="/home/username/public_html" debug="1" privileged="true" autoDeploy="true" liveDeploy="true" />
<Context path="/manager" debug="0" privileged="true" docBase="/usr/local/jakarta/tomcat/server/webapps/manager">
</Context>
</Host>

www.domain.com

如果无法编辑
server.xml
,则可以删除ROOT.war并将war文件重命名为ROOT.war,或者将.war文件解压缩为根目录名。
下次打开网站ex-www.example.com时,index.jsp将显示给您。

我在Openshift网站上也做了同样的工作,该网站提供免费的PAAS服务

>2)在哪里可以找到终端来键入此命令?你使用的是什么操作系统?窗户?Unix?我想您的说明是针对unixYes的o/s是unix,我应该使用ssh访问终端吗?如果您直接登录到该框,您应该能够右键单击桌面,或者转到顶部的“应用程序”菜单并查找“终端”,否则是的,通过ssh访问该框,我在cPanel中,但是没有终端,如果我使用ssh,我应该首先使用文件管理器上传war文件,然后转到ssh吗?对不起,我没有了解cPanel是什么。您能将war解压到本地目录,然后使用将整个目录树发送到您托管的tomcat目录吗?感谢您的回复,我已将war文件上载到public_html上,但不确定如何添加JKMount!首先,您是如何配置Tomcat的?我在网上看到了WHM和EasyApache的参考资料。两者都与cpanel有关。您使用过其中一个吗?如果您通过FileZilla连接到主机,您会看到像:/usr/local/apache/conf/jk.conf和/usr/local/apache/conf/cp_jkmount.conf这样的目录/文件吗?是的,我使用EasyApache和jsptest来测试配置让我们感谢,我之前已经准备好了,但是可以找到与问题相关的部分。这是在cpanel上下文中吗?如果是这样的话,问题的重要部分是在cpanel约束下,在没有ssh的情况下如何修改/usr/local/anything?
SetHandler jakarta-servlet
SetEnv JK_WORKER_NAME ajp13
<Context path="" docBase="yourappname" debug="0" reloadable="true" />
<Host name="domain.com" appBase="/home/username/public_html" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" reloadable="true">
<Alias>www.domain.com</Alias>
<Context path="" reloadable="true" docBase="/home/username/public_html" debug="1" privileged="true" autoDeploy="true" liveDeploy="true" />
<Context path="/manager" debug="0" privileged="true" docBase="/usr/local/jakarta/tomcat/server/webapps/manager">
</Context>
</Host>