在我的index.php中加载CSS和JS等资源时出现ERROR 403错误。

59

我正在使用基于Linux的操作系统,即Elementary OS,并在opt目录下安装了lampp。

我的CSS和JS文件无法加载。当我通过浏览器检查页面时,控制台显示以下信息: Failed to load resource: the server responded with a status of 403 (Forbidden) 我非常确定我的目录是正确的。 这是我的工作空间

这是错误信息 输入图像描述

输入图像描述


我的第一个假设是权限设置... - Paul Dessert
以root权限运行?我尝试以root身份运行Chromium,但没有成功。 - Mark Vizcarra
2
打开终端,cdbootstrap_practice/bootstrap/css 文件夹,键入 ls -la 并将结果添加到您的问题中,以便我们可以看到谁拥有这些文件。如果本地主机 Web 服务器是 Apache,但这些文件归 root 所有,则 Apache 将无法打开它们。 - Jeremy Harris
3个回答

65
您需要更改bootstrap/css文件夹的权限。您的超级用户可能能够访问它,但这并不意味着apache或nginx可以访问它,这就是为什么您仍然需要更改权限的原因。
提示:我通常将apache/nginx的用户组所有者设置为这种文件夹,并授予775权限。

3
如果你在该目录下执行“sudo chmod 0777”命令,应该可以起作用。 - Edson Horacio Junior
12
对于目录,使用chmod 755;对于文件,使用chmod 644。在您的网站根目录下运行这两个命令:find . -type d -exec chmod 755 {} \;find . -type f -exec chmod 644 {} \; - Janaka R Rajapaksha
我已经通过给文件夹添加权限来解决了这个问题 - 有时仅仅给单个文件添加权限是不够的。 - Nickromancer
@danielad 没错,该文件夹需要执行权限才能访问。 - Edson Horacio Junior

17

查找web服务器用户

打开终端并输入lsof -i tcp:80

这将显示Web服务器进程的用户。 以下是运行Debian的Raspberry Pi的示例:

COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2  7478 www-data    3u  IPv4 450666      0t0  TCP *:http (LISTEN)
apache2  7664 www-data    3u  IPv4 450666      0t0  TCP *:http (LISTEN)
apache2  7794 www-data    3u  IPv4 450666      0t0  TCP *:http (LISTEN)

用户是 www-data 如果将web文件的所有权交给Web服务器:
chown www-data:www-data -R /opt/lamp/htdocs

为了确保安全,再输入 chmod 755 命令:

chmod 755 -R /opt/lamp/htdocs

请告诉我你的进展情况,也许你需要在命令前使用“sudo”,例如: sudo chown www-data:www-data -R /opt/lamp/htdocs

如果不起作用,请给我们提供以下命令的输出结果: ls -al /opt/lamp/htdocs


1
一个快速的解决方案是使用以下命令更改权限:

sudo chmod -R 755

如果你正在管理一个生产服务器,请小心,不要添加你不需要的权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接