403只能在javascript文件夹上禁止

时间:2015-01-12 16:54:53

标签: web-services file-permissions server permission-denied

我一直在努力解决这个问题3天,在经过许多其他SO问题后仍然无法弄明白。

我正在使用 Apache 2.4.7 设置DigitalOcean VPS。 2.4的安装程序与以前的版本不同,因此这可能是我的问题的一部分。

问题

我正在从共享主机迁移,并试图在新的DO VPS上测试我的网站。当我转到我的新IP地址时,网站会加载,但以下资源会出现404错误:

<link href="/javascript/jquery-ui-1.9.2.custom/css/smoothness/jquery-ui-1.9.2.custom.css" rel="stylesheet">
<script src="/javascript/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.js"></script>
<script src="/javascript/dialog/alert_text.js"></script>

其他文件夹中的资源正常加载;例如,此样式表加载没有问题:

<link rel="stylesheet" type="text/css" href="/styles/main_style.css">

我在我的/ javascript目录中将问题跟踪到403禁止错误。此目录由同一所有者/组拥有,并且与我的Web根目录中的每个其他目录具有相同的权限(755)。但由于某种原因,我无法从我的网络浏览器访问/ javascript。

我做了什么

文件确实存在于该位置的新服务器上。我已经检查过该文件夹是否正确,并且没有任何奇怪的大写字母。在旧服务器上一切正常,我所做的就是将目录结构复制并粘贴到新服务器上。

服务器上没有 .htaccess 文件。并且服务器不关心是否存在,因为设置了Alow Override None

我已将 apache2.conf 更改回默认状态,以确保没有奇怪的<Directory>指令。

我为/ javascript文件夹添加了<Directory>并执行了Require all granted

我将/ javascript文件夹的权限更改为chmod 777但没有效果,然后又更改回chmod 755

我在每次更改后重新启动Web服务器,但没有任何效果。我总是在/ javascript目录上遇到403 forbidden错误,即使所有者和权限与我的Web根目录中的每个其他目录完全相同。

有没有办法获得有关403错误的更多信息?有哪些方法可以找出它不允许访问的原因?

最后的注释

有一点需要注意的是,我还没有将我的DNS指向DigitalOcean,因为我还在测试。所以客户端浏览器是从MY.IP.ADR.ESS / javascript / ...而不是MYDOMAINNAME / javascript / ....加载的。我无法想象这会很重要,但我还是想提一下。

1 个答案:

答案 0 :(得分:1)

我发现了这个问题,这是一个众所周知的问题:Ubuntu BUG

问题是该文件夹的名称是“javascript”,修复只是将我的/ javascript文件夹重命名为/ java-script(或/ javascript以外的任何其他内容)。

基本上,如果您安装了javascript-common软件包,它会生成以下别名:

Alias /javascript /usr/share/javascript

所以我的WEBROOT / javascript文件夹被重定向到/ usr / share / javascript,给出403错误。

希望这有助于为其他人节省几天的故障排除时间。