以正確的方式在 Apache 中建立多個虛擬主機 (macosx)

以正確的方式在 Apache 中建立多個虛擬主機 (macosx)

我在嘗試在 Apache 中定義多個虛擬主機時遇到了一個奇怪的問題。這是我的 httpd.conf 檔案程式碼:

<VirtualHost *:8888>
    ServerName site1.local
    DocumentRoot /Applications/MAMP/htdocs/site1/public

    <Directory /Applications/MAMP/htdocs/site1/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:8888>
    ServerName site2.local
    DocumentRoot /Applications/MAMP/htdocs/site2/public

    <Directory /Applications/MAMP/htdocs/site2/public>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

當我嘗試在瀏覽器中存取“site2.local”時,我被重定向到“site1.local”。我在 httpd.conf 檔案中插入的所有 VirtualHost 定義都會發生這種情況。當我想訪問“site2.local”或任何其他內容時,我需要將其 VirtualHost 定義放在頂部(作為第一個)。因此,我假設 Apache 僅正確執行第一個 VirtualHost。

另外,另一個問題:如果我嘗試存取 htdocs 資料夾中未在 VirtualHost 中定義的任何專案文件,我將收到一條訊息「禁止,您無權訪問此伺服器上的 /project/」。如果我想存取這些項目中的任何一個,我需要刪除 httpd.conf 檔案中的所有 VirtualHost 定義。

我做錯了什麼?

就我而言,這些(在 VirtualHost 中定義)是帶有 Zend Framework 的 PHP 專案。我正在使用 MacOSX。

謝謝

答案1

你失蹤了

NameVirtualHost *:8888

<VirtualHost _default_:8888>
DocumentRoot /www/default
</VirtualHost> 

有關 apache 預設虛擬主機的更多信息,您可以閱讀此線上文檔

http://httpd.apache.org/docs/2.2/vhosts/examples.html

相關內容