Apache-2.2

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

  • May 13, 2014

嘗試在 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 框架的 PHP 項目。我正在使用 MacOSX。

謝謝

你不見了

NameVirtualHost *:8888

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

有關 apache 預設虛擬主機的更多資訊,您可以閱讀此線上文件

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

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