Apache-2.2

在 OSX Apache 上禁止動態 vhost 給出 403

  • October 4, 2014

我已遵循本指南,並試圖通過允許foo.dev定向到 web 文件夾在 OSX 上創建動態虛擬主機/foo。我的不同之處在於我使用~/Sites的是我的網路文件夾,而不是指南中的 Mac HD。它使用我認為已安裝並正常工作的 dnsmasq。

所以在我的 ~/Sites 文件夾中,我有:

home
sites
|-foo
|-bar

我的 httpd-vhosts.conf 看起來像這樣:

<Virtualhost *:80>
DocumentRoot "/Users/harryg/Sites/home"
ServerName home.dev
UseCanonicalName Off
ErrorLog "logs/home/error.log"
<Directory "/Users/harryg/Sites/home">
   #Options FollowSymLinks
   Options Indexes FollowSymLinks Includes ExecCGI
   AllowOverride None
   Allow from all
</Directory>
</Virtualhost>

<Virtualhost *:80>
VirtualDocumentRoot "/Users/harryg/Sites/sites/%1"
<Directory "/Users/harryg/Sites/sites/%1">
   Options FollowSymLinks
   #Options Indexes FollowSymLinks Includes ExecCGI
   AllowOverride None
   Allow from all
</Directory>
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</Virtualhost>

第一個虛擬主機工作正常,並會home.dev導致index.php我在該虛擬主機的根目錄中擁有的範例文件。

無論 .dev 的子域是否存在文件夾,第二個 vhost 只是為anything.dev 提供403 Forbidden 錯誤。

有任何想法嗎?

編輯:

最新日誌條目

阿帕奇錯誤日誌:

[Wed Dec 18 00:45:37 2013] [error] [client 127.0.0.1] File does not exist: /Users/harryg/Sites/home/favicon.ico
[Wed Dec 18 00:45:45 2013] [error] [client 127.0.0.1] client denied by server configuration: /Users/harryg/Sites/sites/test/, referer: http://home.dev/
[Wed Dec 18 00:45:45 2013] [error] [client 127.0.0.1] client denied by server 

伺服器現在可以工作(配置文件中的錯誤日誌目錄有問題)。但仍然無法訪問動態虛擬主機。

您的第二個網站的內容是什麼?

有兩個可能的原因:

  1. 如果目錄沒有索引文件(index.php、index.html、default.html 等)並且不允許列出目錄,Apache 將顯示 403 錯誤頁面。
  2. 我注意到您沒有在 sites.dev 中啟用 ExecCGI。您可以嘗試啟用它嗎?

**更新:**百分比登錄路徑 ( /Users/harryg/Sites/sites/%1) 用於 mod_vhost_alias,但不是 Apache 的<Directory>規則。修改這個:

<Directory "/Users/harryg/Sites/sites/%1">

對此:

<Directory "/Users/harryg/Sites/sites">

它有效嗎?

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