我一直在努力解决这个问题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 / ....加载的。我无法想象这会很重要,但我还是想提一下。
答案 0 :(得分:1)
我发现了这个问题,这是一个众所周知的问题:Ubuntu BUG。
问题是该文件夹的名称是“javascript”,修复只是将我的/ javascript文件夹重命名为/ java-script(或/ javascript以外的任何其他内容)。
基本上,如果您安装了javascript-common软件包,它会生成以下别名:
Alias /javascript /usr/share/javascript
所以我的WEBROOT / javascript文件夹被重定向到/ usr / share / javascript,给出403错误。
希望这有助于为其他人节省几天的故障排除时间。