2014-01-31 42 views
0

我有一個個人VPS託管在*和一個Ubuntu安裝。 ubuntu運行apache,php,mysql,目前正在使用虛擬主機映射的5個網站。我正在編寫整個程序以防有人需要它。將域別名添加到現有的linux apache安裝的過程是什麼?

當我想添加一個新的領域,我在/etc/hosts創建127.0.0.1 test.com *.test.com行,在/etc/apache2/sites-availablerun a2ensite test.com添加新的文件 - 然後重新啓動Apache。每個網站都有自己的文件夾中/var/www和虛擬主機條目看起來是這樣的:

<Virtualhost *:80> 

     # Admin email, Server Name (domain name) and any aliases 
     ServerAdmin [email protected] 
     ServerName www.test.com 
     ServerAlias test.com *.test.com 

     # Index file and Document Root (where the public files are located) 
     DirectoryIndex index.html index.php 
     DocumentRoot "/var/www/test.com" 
     <Directory /var/www/test.com> 
      Options FollowSymLinks 
      AllowOverride All 
      Order allow,deny 
      allow from all 
     </Directory> 
</Virtualhost> 

我打算增加一些別名像aaa.test.combbb.test.comccc.test.com等,這些將指向/着不同的文件夾。 aaa.test.com之一將指向/var/www/aaa/index.phpbbb.test.com/var/www/bbb/index.php。總而言之,不同的別名 - 相同的域 - 不同的文件夾都在Apache中。我如何實現這一目標?

回答

1

由於aaa.test.com和bbb.test.com應指向不同的目錄,因此您需要手動創建單獨的Virtualhost條目。在此之前,您必須從ServerAlias刪除test.com 虛擬主機條目中的_ *。test.com_。然後,在的/ etc/apache2的/網站可用創建一個文件,說aaa.test.com並添加以下內容,然後保存

<Virtualhost *:80> 

    ServerName aaa.test.com 
    DirectoryIndex index.html index.php 
    DocumentRoot "/var/www/aaa/" 

</Virtualhost> 

確保重新啓動/重新加載Apache服務。

執行相同的bbb.test.com ..這就是你需要做的......所有的所有D型最好的:)

+0

怎麼樣的域名服務器?我要爲aaa添加一個cname嗎? – Radolino

+0

nameservers和cname記錄與DNS相關,與apache webserver無關。這取決於該域名註冊的位置以及應該如何解決。名稱服務器也總是爲主域添加,而不是爲子域添加。讓我知道您對DNS的確切要求,以便我可以幫助您。 :) –

+0

我想完全建立一個新的域,你將不得不創建一個指向DNS主機的A記錄。謝謝 – Radolino

2

每個VirtualHost容器只能有一個DocumentRoot。既然你已經爲每個aaa.test.combbb.test.com等指定不同DocumentRoot,你需要設置爲每個單獨VirtualHost

<VirtualHost *:80> 
    ServerName aaa.test.com 
    DocumentRoot /var/www/aaa 
    DirectoryIndex index.php index.html 
    ... 
</VirtualHost> 

等。

+0

也就是說它... Greb :) –

相關問題