2013-08-23 118 views
0

我在我的htdocs文件夾中有2個項目:project1和project2。我在MAMP服務器上運行我的project1。它位於localhost:8888(由MAMP提供的默認位置)。我想運行我的第二個project2。我需要做些什麼才能做到這一點?在Apache服務器上運行2個項目

我像這樣添加了httpd.conf文件,但它不起作用。有沒有優雅的方式來做到這一點?

<VirtualHost *:8888> 
ServerName zf2-tutorial.localhost 
DocumentRoot /Applications/MAMP/htdocs/zf2-tutorial-1/public 
SetEnv APPLICATION_ENV "development" 
<Directory /Applications/MAMP/htdocs/zf2-tutorial-1/public> 
    DirectoryIndex index.php 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 
</VirtualHost> 

<VirtualHost *:8888/secondproject> 
ServerName zf2-tutorial2.localhost 
DocumentRoot /Applications/MAMP/htdocs/zf2-tutorial-2/public 
SetEnv APPLICATION_ENV "development" 
<Directory /Applications/MAMP/htdocs/zf2-tutorial-2/public> 
    DirectoryIndex index.php 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 
</VirtualHost> 

我做錯了什麼?

+0

定義不起作用?這在superuser/serverfault可能會更好。假設你的httpd.conf中有一個NameVirtualHost配置行,並且zf2-tutorial.localhost和teamleads.localhost都解析爲127.0.0.1,它應該工作。但是你看到的確切的錯誤/問題是什麼。 – Doon

+0

第二個項目沒有運行。好吧,我得到了這個。我需要如何在服務器名稱中設置127.0.0.1? – user231791

+0

您的瀏覽器需要發送主機頭,因此您需要通過http://teamleads.localhost:8080訪問它。您似乎在Mac上,因此您需要將teamleads.localhost添加到您的/ etc/hosts文件 – Doon

回答

1

看起來不錯,只是<VirtualHost *:8888/secondproject>應該只是<VirtualHost *:8888>。此外,不要忘記將綁定zf2-tutorial.localhostzf2-tutorial2.localhost127.0.0.1的行添加到/etc/hosts文件並重新啓動Apache。

+0

我做到了,正如你所描述的那樣。但是,即使我更改了第二個項目的URL,我也只能訪問項目1。我得到了相同的結果zf1.tutorial1.localhost:8888和zf2-tutorial2.localhost:8888 – user231791

+0

請確保[NameVirtualHost](http://httpd.apache.org/docs/2.2/mod/core.html#name虛擬主機)指令是未註釋的,在你的情況下它應該是'NameVirtualHost *:8888'。 – bredikhin

+0

我在httpd.conf文件中有2個虛擬主機。當我取消其中的一個,然後它運行良好。但是,如果我更改URL名稱,那麼我得到相同的目錄訪問權限。在這種情況下,如果我需要訪問這些項目中的一個,那麼我必須每次取消1個虛擬主機的註釋。 – user231791

相關問題