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

时间:2013-02-23 07:29:25

标签: java-ee tomcat spring-mvc struts2 cpanel

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

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

6 个答案:

答案 0 :(得分:5)

根据one cpanel hosting service命令,出于安全原因,通常会为cpanel关闭访问权限,您必须具体要求它。如果您具有此访问权限,则可以登录并运行unzip命令(使用FileZilla或类似工具上传war文件后)。

根据cpanel,如果您没有命令提示符访问权限,则可以将战争上传到 public_html 目录,但在此之前您需要更改apache配置并添加这是一个“JkMount”(参见下面的“appname”)。

<IfModule mod_jk.c>
  JkMount /*.jsp ajp13
  JkMount /servlet/* ajp13
  JkMount /servlets/* ajp13
  JkMount /*.do ajp13
  JkMount /appname/* ajp13
</IfModule>

当然,除了你的应用名称而不是appname。此更改将指示apache将对顶级URL(即mydomain.com/appname)的调用重定向到您的Tomcat实例(即mydomain.com:8080/appname)。上传战争并更改配置后,您必须重新启动apache。

但是我们说我们没有ssh访问权限,所以我们如何修改该文件。根据{{​​3}}我们可以编辑/home/username/public_html/.htaccess或只是/public_html/.htaccess并添加以下行:

SetHandler jakarta-servlet
SetEnv JK_WORKER_NAME ajp13

现在,apache将重定向tomcat for mydomain.com/appname而不是mydomain.com:8080/appname。我们如何才能从mydomain.com开始工作?我根本就不知道答案。据我所知,使用将war文件更改为ROOT.war的常用技巧在cpanel中不起作用。

答案 1 :(得分:4)

您必须修复/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>

答案 2 :(得分:3)

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

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

http://tomcat.apache.org/tomcat-7.0-doc/config/context.html

答案 3 :(得分:2)

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

修改tomcat_home\conf\server.xml。在<Host标记下

<Context path="" docBase="yourappname" debug="0" reloadable="true" />

您将yourappname.war放在反映webapps标记的appBase属性的<Host文件夹中。

保存,重启服务器。

答案 4 :(得分:2)

如果您无法编辑server.xml,那么您可以删除ROOT.war并将war文件重命名为ROOT.war,或者只将您的.war文件解压缩到目录名ROOT。 下次您打开您的网站前 - www.example.com时,将向您显示index.jsp 我在Openshift的网站上做了同样的事情,提供免费的PAAS服务

答案 5 :(得分:-1)

他们只需要在shell中解压缩.war存档。参见:

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

我们有超过100个使用过这些说明的用户,效果很好。如果您使用EasyApache部署Tomcat并按照cPanel的设计进行设置,那应该是关于它的。这源于:

http://twiki.cpanel.net/twiki/pub/Al...s08/Tomcat.pdf

http://forums.cpanel.net/f42/how-auto-deploy-war-cpanel-server-55096.html