14

我需要在cPanel. 我已经成功安装了Tomcat,

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

4

6 回答 6

5

根据一项 cpanel 托管服务命令提示符访问,出于安全原因,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>

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

但是我们说我们没有 ssh 访问权限,那么我们如何修改该文件。根据这个论坛,我们可以编辑 /home/username/public_html/.htaccess 或只是 /public_html/.htaccess 并添加以下行:

SetHandler jakarta-servlet
SetEnv JK_WORKER_NAME ajp13

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

于 2013-02-23T10:17:34.700 回答
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>
于 2013-07-04T04:31:55.510 回答
3

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

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

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

于 2013-03-31T13:15:36.633 回答
2

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

修改tomcat_home\conf\server.xml. 在<Host标签下放

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

您将标签的反射属性yourappname.war放入文件夹的位置。webappsappBase<Host

保存,重启服务器。

于 2013-03-31T19:34:04.757 回答
2

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

于 2013-07-05T07:04:35.690 回答
-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

于 2013-03-25T09:20:53.637 回答