我需要在cPanel
. 我已经成功安装了Tomcat,
我可以通过将war
文件复制到我的www
文件夹中来运行我的应用程序,但问题是它war
在地址中显示了项目名称(文件名),我需要知道如何删除它,以便用户可以访问www.example.com
而不是www.example.com/MyProject/index.jsp
?
我需要在cPanel
. 我已经成功安装了Tomcat,
我可以通过将war
文件复制到我的www
文件夹中来运行我的应用程序,但问题是它war
在地址中显示了项目名称(文件名),我需要知道如何删除它,以便用户可以访问www.example.com
而不是www.example.com/MyProject/index.jsp
?
根据一项 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中不起作用。
您将不得不修复 /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>
战争文件的名称与容器如何呈现项目无关 - 这只是配置问题,默认情况下容器将上下文路径呈现为文件名。
并且使用 ROOT.war 只是一个愚蠢的技巧,请阅读 Tomcat 中的上下文配置(我假设您使用的是 Tomcat)
有几种方法可以在 tomcat 中设置应用程序根上下文。所有这些都在服务器的文档中描述。这是另一个
修改tomcat_home\conf\server.xml
. 在<Host
标签下放
<Context path="" docBase="yourappname" debug="0" reloadable="true" />
您将标签的反射属性yourappname.war
放入文件夹的位置。webapps
appBase
<Host
保存,重启服务器。
如果你不能编辑server.xml
,那么你可以删除 ROOT.war 并将你的 war 文件重命名为 ROOT.war 或者只是将你的 .war 文件解压缩到一个名为 ROOT 的目录。
下次您打开您的网站 ex - www.example.com 时,将向您显示 index.jsp。
我在 Openshift 的网站上做了同样的事情,它提供免费的 PAAS 服务
他们只需要在 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