Apache-2.2
以正確的方式在 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 框架的 PHP 項目。我正在使用 MacOSX。
謝謝
你不見了
NameVirtualHost *:8888
和
<VirtualHost _default_:8888> DocumentRoot /www/default </VirtualHost>
有關 apache 預設虛擬主機的更多資訊,您可以閱讀此線上文件
http://httpd.apache.org/docs/2.2/vhosts/examples.html