在虛擬主機的環境下,要添加一筆子網域是很簡單的,通常只要透過Cpanel當中的添加子網域功能就可以建立一個子網域。

不過要如何在Apache的環境下自行添加子網域呢? 最近將網站從虛擬主機搬到linode VPS 所以也遇到這個問題,下面分享一下方法。

以下操作是透過putty進行文字命令,但也可依照個人喜好使用WinSCP完成。

步驟一(step1):建立資料夾

此處假設網站放在 var/www/html 資料夾,要綁定的子網域是 demo.aidec.tw

mkdir /var/www/html/demo/

步驟二(step2):修改httpd配置

此階段我們要在httpd當中添加一段語法,讓伺服器能夠讀取我們自訂的配置。當然也可以直接將語法加入在此頁,但為了保持乾淨建議還是做分離。

進入httpd.conf

vi /etc/httpd/conf/httpd.conf

在httpd.conf 的最後加入以下內容

IncludeOptional sites-enabled/*.conf

0001.PNG

加入後按[Esc]輸入 :wq!  在按[Enter](保存退出)

說明:

添加此串的用途是讓伺服器在運行時也會去解析 /etc/httpd/sites-enabled/ 底下附檔名為 .conf 的文件


步驟三(step3):建立sites-enabled資料夾

上一步我們讓伺服器去監聽解析sites-enabled資料夾,所以我們必須要建立一個sites-enabled資料夾 (不然有可能會出錯)

mkdir /etc/httpd/sites-enabled/

步驟四(step4):添加自定義的.conf配置

接著,我們在 /etc/httpd/sites/enabled/ 資料夾添加一個 subdomain.conf 的文件 (此處的 subdomain 可改成你喜歡的)

vi /etc/httpd/sites-enabled/subdomain.conf

輸入以下配置

#主網域的配置

<VirtualHost *:80>

    ServerAdmin service@aidec.tw     #輸入管理員的Email

    ServerName www.aidec.tw            #主網域名稱

    ServerAlias aidec.tw                      #網域的別名

    DocumentRoot /var/www/html/      #根目錄

    ErrorLog /var/www/html/error.log   #錯誤log路徑

    CustomLog /var/www/html/requests.log combined 

</VirtualHost>

#子網域的配置

<VirtualHost *:80> 

    DocumentRoot /var/www/html/demo  #子網域的路徑 (對應第一步驟建立的資料夾)

    ServerName demo.aidec.tw           #子網域名稱

</VirtualHost>

如果有多筆子網域,則複製上方的子網域配置並將 路徑與子網域名稱改成對應的即可!

0002.PNG

同樣 按[Esc] 輸入 :wq! 在按 [Enter](保存退出)

註:如果你網站的不是 80 port,請自行改成對應的 port

步驟五(step5):重新啟動apache伺服器

systemctl restart httpd.service

步驟六(step6):設定DNS

前幾個步驟,我們已經將apache需要設定的部分搞定了,剩下的就是去設定DNS。

在這邊我們以Linode VPS 作為範例 基本上只要將子網域與DNS A紀錄綁定就OK了


(1).進入 DNS Manager 

在DNS Manager中點選您的主域名 (此處以本站aidec.tw為範例)

003.PNG

(2).添加一筆 A紀錄

00004.PNG

將要綁定子網域名稱輸入在hostname,ip的部分則填自己網站的ip

00005.PNG

這樣就完成子網域的綁定動作了,若之後還需要綁定更多子網域只須要從第四步驟開始即可!!


文章轉載或引用,請保留原文出處,並添加原文連結 !!3Q