我正在尝试使用Tomcat8,Apache和Ubuntu 15.04部署.war文件。当我在tomcat的/ manager部分中单击“选择要上传的WAR文件”时,出现以下错误:
失败- 部署上传失败,异常:java.io.FileNotFoundException:/opt/tomcat/webapps/musicStore.war(权限被拒绝)
我该如何解决?
将评论转换为答案,添加更多信息:
您的/opt/tomcat/webapps目录属于 某人 (执行ls -l /opt/tomcat/webapps以查看其所属的人)。
/opt/tomcat/webapps
ls -l /opt/tomcat/webapps
当tomcat运行时,执行ps aux | grep catalina以查看哪个用户正在运行tomcat(取决于您启动它的方式- 可能是您自己的当前用户)。你 可以的 chown <thatuser> /opt/tomcat/webapps。但是,对于生产系统,我强烈建议不要运行manager应用程序,并且tomcat自己的目录可写入其自身。它打开了很多攻击媒介,是不好的做法,恕我直言
ps aux | grep catalina
chown <thatuser> /opt/tomcat/webapps
如果是本地开发系统,那么舒适度通常会比安全性重要-您可能会选择保留Manager应用程序。
为了减轻生产中潜在的管理器应用程序问题,至少限制对已知IP地址的访问,请保持用户数据库的良好维护(不要在具有明文密码的tomcat- users.xml中)。但是,在我的生产系统上,tomcat无法写入其自己的webapps目录-因此,无论如何都无法通过manager应用程序进行热部署。