任何本地主机资源上的 403

任何本地主机资源上的 403

无论localhost我请求哪种资源,我都会得到403 禁忌HTTP 错误。我有 Apache(包含在 Debian 10 发行版中),并cat /var/log/apache2/error.log给了我以下相关行:

[Sun Aug 09 22:55:01.943309 2020] [authz_core:error] [pid 3568] [client ::1:48672] AH01630: client denied by server configuration: /home/morten/NetBeansProjects

我可能会提供localhostlocalhost/existing_urllocalhost/wrong_url-- 全部给我相同的 HTTP 403 错误和相同类型的错误日志条目。

权限:

$ ls -l | grep NetBeansProjects
    drwxr-xr-x  4 morten morten      4096 aug  9 20:25 NetBeansProjects

$ ls -l Dropbox/NetBeansProjects/
    totalt 620
    drwxr-xr-x 3 morten morten   4096 aug  9 20:25 bedom
    drwxr-xr-x 3 morten morten   4096 aug  2 17:05 ElevMonitorering
    -rwxrwxrwx 1 morten morten      5 aug  6 09:49 index.html

 ls -l Dropbox/NetBeansProjects/bedom/
totalt 8
-rwxr-xr-x 1 morten morten  406 aug  9 20:27 index.php
drwxr-xr-x 3 morten morten 4096 aug  9 20:25 nbproject

在 Apache2 中,/etc/apache2/apache2.conf显示以下(选定的)行:

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

# <Directory /var/www/>
<Directory /home/morten/Dropbox/NetBeansProjects>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

同时/etc/apache2/sites-available/default-ssl.conf有:

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin webmaster@localhost

                DocumentRoot /home/morten/Dropbox/NetBeansProjects # /var/www/html

并且同时/etc/apache2/sites-available/000-default.conf显示:

<VirtualHost *:80>
        DocumentRoot /home/morten/NetBeansProjects

所以我的问题是:我需要更正什么才能获取 URL 的内容localhost/index.php(而不是错误 403)?

编辑

添加后localhost.localdomain根据这个答案,只有http://localhost/index.php给我带来麻烦,但我可能在生产目的中不需要该索引文件,所以我将留下这个问题。我认为它已经解决了所需的http://localhost/bedom/index.php响应。请参阅我自己对自己的评论。羞于承认,404 是完全微不足道:虽然存在,但我在文件夹根目录中index.html请求...index.phplocalhost

答案1

所有文件夹、整个路径必须获得所有人的许可,或者准确地说:Web 服务器守护进程,读取并执行。也就是说,路径/home/morten/NetBeansProjects必须像这样显示:

ls -l / | grep home
drwxr-xr-x   3 root root  4096 maj 27 22:08 home
$ ls -l /home | grep morten
drwxr-xr-x 28 morten morten 4096 aug 10 22:23 morten
$ ls -l /home/morten | grep Dropbox
drwxr-xr-x 32 morten morten   4096 aug 10 22:25 Dropbox
$ ls -l /home/morten/Dropbox/ | grep NetBeansProjects
drwxr-xr-x  4 morten morten      4096 aug  9 20:25 NetBeansProjects

withrxset 为所有者、组和其他设置。这将在问题中提到的我的设置中得到纠正。

然后,该文件/etc/apache2/sites-available/000-default.conf应包含指令中 Web 服务器根目录的正确路径DocumentRoot

此外,该/etc/apache2/apache2.conf文件应引用与以下内容相同的文件夹:

<Directory /home/morten/Dropbox/NetBeansProjects>

我想这就是修复 403 的全部了。

相关内容