Linux

Apache“客戶端被伺服器配置拒絕”,儘管允許訪問目錄(虛擬主機配置)

  • February 14, 2020

在 Ubuntu 上的 Apache 中,我設置了一個虛擬主機,但在瀏覽器中,我不斷收到“403 禁止訪問”錯誤;日誌顯示“客戶端被伺服器配置拒絕:/home/remix/ ”。

在網上尋找解決方案時,我發現了許多關於目錄訪問的文章(全部允許等),但據我所知,我已經這樣做了。在httpd-vhosts.conf中有以下程式碼:

NameVirtualHost *:80

<VirtualHost *:80>
   ServerAdmin webmaster@dummy-host.example.com
   DocumentRoot "/opt/lampp/htdocs/"
   ServerName localhost
   ServerAlias localhost
   ErrorLog "logs/dummy-host.example.com-error_log"
   CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   DocumentRoot "/home/remix/"
   ServerName testproject
   ServerAlias testproject
   <Directory "/home/remix/">
       Options Indexes FollowSymLinks Includes ExecCGI
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>
</VirtualHost>

我也加了

127.0.0.1    testproject

到 /etc/hosts 文件。

此外,/home/remix/ 文件夾包含一個 index.html 文件,並且在 httpd.conf 中啟用了虛擬主機。

有什麼我沒看到的嗎?

**編輯:**這是 Apache error_log 條目:

[Sat Aug 18 09:15:32.666938 2012] [authz_core:error] [pid 6587] 
[client 127.0.0.1:38873] AH01630: client denied by server configuration: /home/remix/

更改您的授權配置:

<Directory /home/remix/>
   #...
   Order allow,deny
   Allow from all
</Directory>

…到 Apache 2.4 版本的相同。

<Directory /home/remix/>
   #...
   Require all granted
</Directory>

查看升級概述文件以獲取有關您可能需要進行的其他更改的資訊 - 請注意,您在 Google(以及本網站)上找到的大多數配置範例和幫助都指的是 2.2。

檢查目錄的權限。我敢打賭,它設置為拒絕除您自己以外的任何人訪問,例如:

$ ls -ld /home/remix
drwx------ 92 remix remix 4096 Aug 17 22:59 /home/remix

如果你看drwx------得很清楚,那麼就是這種情況。通過執行修復它:

chmod a+x /home/remix

引用自:https://serverfault.com/questions/418101