Permissions

任何本地主機資源上的 403

  • August 10, 2020

無論我請求哪個資源localhost,我都會收到403 Forbidden 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

我可能會提供localhostorlocalhost/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.php``localhost

所有文件夾,整個路徑都必須具有所有人的權限,或者準確地說: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

為所有者、組和其他設置r並設置。x這將在問題中提到的我的設置中得到糾正。

然後,該文件/etc/apache2/sites-available/000-default.conf應在指令中包含指向 Web 伺服器根目錄的正確路徑DocumentRoot

此外,該/etc/apache2/apache2.conf文件應引用相同的文件夾

<Directory /home/morten/Dropbox/NetBeansProjects>

我認為這將是修復 403 的全部內容。

引用自:https://unix.stackexchange.com/questions/603684