AWS Opsworks Java 应用程序服务器 403 错误

Posted

技术标签:

【中文标题】AWS Opsworks Java 应用程序服务器 403 错误【英文标题】:AWS Opsworks Java App Server 403 Error 【发布时间】:2014-11-22 17:33:20 【问题描述】:

我是 AWS Opsworks 的新手。我正在尝试使用 Java App Server 部署最简单的 AWS Opsworks 应用程序,方法如下:http://java.awsblog.com/post/Tx1QG3W2M969014/AWS-OpsWorks-for-Java

我按照上述进行了所有操作,但是当我部署并尝试查看 URL 时,它显示: 禁止 您无权访问此服务器上的 /JavaBasic/HelloWorldService.jsp。

有人可以指导我如何解决这个问题吗?

【问题讨论】:

我也遇到了同样的问题! 阿南,@KitHo 我的回答有用吗?我不确定它是否会,但没有更多信息,这是我能做的最好的。 有人在吗?你测试过我的答案吗?它有效吗?我真的很想知道,因为我已经有一段时间没有使用 Apache了,如果我还记得什么我会很高兴 @QPaysTaxes 它不起作用,看起来像默认 apache config vhost 问题 @KitHo 在过去的几天里,我环顾四周并没有发现任何东西。作为最后的努力,您是否尝试过将其关闭然后重新打开?也就是说,在使用chmod 之后,您是否重新启动了 Apache?如果你这样做了,但它仍然没有工作,我不知道。 【参考方案1】:

根据我记得在 Apache 文档中看到的内容,您需要更改文件的权限,以便每个人(甚至未登录的用户)都可以看到它。这样,您就可以通过浏览器访问它,因为这是一个无需登录的连接。

以下命令应该可以解决问题:

sudo chmod -R  755 /path/to/www

其中/path/to/www 是从根目录到网站上文件最顶层目录的绝对路径。使用 Apache2,它似乎会是 /var/www,虽然它可能对你来说不同。

请注意,您必须拥有root 帐户的密码才能使sudo 工作;如果您不这样做,请尝试不使用它,它可能仍然存在。

编辑:经过大量研究,我确定您只需要授予www-data 用户查看页面的权限,因为这是 Apache 使用的。将权限设置为755 将执行此操作,但任何使www-data 能够读取文件的解决方案都将执行相同的操作。例如,假设 Apache 使用 www-data,这也是可行的:

sudo chown -R www-data /path/to/www

同样,/path/to/www 应该是您网站根目录的绝对路径,并且您需要 root 帐户的密码。

【讨论】:

如果网络服务器在不应该发送 403 时,这通常是问题所在。老实说,这不是 jsp 的问题,而是系统管理/文件系统权限问题 @zack6849 我也是这么想的。这就是为什么我的答案是关于权限,而不是调试 java 代码。 基本上是路径问题。 @QPaysTaxes,我偶然发现了相同的解决方案!解决这个问题的方法是实际上能够以 root 身份登录,或者确切地知道什么相对路径将有助于实际打开应用程序。

以上是关于AWS Opsworks Java 应用程序服务器 403 错误的主要内容,如果未能解决你的问题,请参考以下文章

AWS Autoscaling 和 AWS Opsworks 有啥区别

通过 aws opsworks 进行 cron 作业

AWS OpsWorks新增Amazon RDS支持

在 AWS opsworks 部署应用程序。为啥随机部署失败?

使用 AWS OpsWorks,我如何启动我的节点应用程序?

如何对从 AWS OpsWorks 部署的应用程序拥有组可写文件权限?