二月 21, 2016 | 後端和Drupal

一鍵升級你所有客戶的安全性更新: Drupal Multi-Site 多網站架構

Drupal網站如果建立多了,每次到要更新的時候,是否會覺得麻煩,需要一個一個網站來更新呢?有了Drupal的Multi-Site多網站的功能,可以不需用再這麼麻煩,不僅可以共用核心Code,一些常用的模組,也可以一起共用,是Drupal內建非常強大的功能。

前言

Drupal網站如果建立多了,每次到要更新的時候,是否會覺得麻煩,需要一個一個網站來更新呢?有了Drupal的Multi-Site多網站的功能,可以不需用再這麼麻煩,不僅可以共用核心Code,一些常用的模組,也可以一起共用,是Drupal內建非常強大的功能。

Drupal Multi-Site 多網站簡介

Drupal本身內建了多網站功能,多網站功能主要提供以下幾大特點:

  1. 共用Code

    如果使用Drupal的Multi-Site功能,不僅可以共用「核心Code」、「模組Module」、「模板Theme」,更可以更新時,同步進行更新,而不用每個網站一個一個更新了。

  2. 資料庫獨立

    雖然共用Drupal的Code,但是完全不影響網站資料的獨立性,每個網站的資料庫獨立,因此每個網站可以用自己的設定、文章、會員、簡單來說,就是一個獨立的網站。

  3. 檔案獨立

    Drupal的多網站功能,也提供了獨立的檔案系統,可以讓每個Drupal網站都擁有自己的檔案目錄,而不會跟其他的網站相互衝突。

  4. 模組模板也可享有獨立性

    雖然共用Code,但是Drupal還是可以兼顧彈性的,Drupal的Multi-Site功能可以讓每個網站自己也可以擁有自己的模組與模板。因此,若是有針對個別網站有客製化模組的需求或客製化模板的需求,也是一樣沒有問題的。

Drupal Multi-Site 多網站操作流程

假設目前您已經完成了一個Drupal網站的架設了,如果您並不會安裝Drupal網站,可以參考這一篇教學:Drupal新手教學:在Windows環境下,利用XAMPP 安裝 Drupal或這一篇教學:Drupal新手教學:如何在Ubuntu安裝Drupal
想要完成Drupal的Multi-Site多網站功能,需要完成以下幾個步驟才能夠完成。

  1. 進入Drupal的目錄的sites資料夾

  2. 建立一個Folder,並且名字取名為新網站的Domain名稱

    如果您新的網站為「domain.hellosanta.tw」,您只需要新增一個資料夾叫做「domain.hellosanta.tw」即可。

  3. 複製default.settings.php到「domain.hellosanta.tw」這個資料夾,並且改名為settings.php

  4. 建立files資料夾

    由於需要獨立的files資料夾來存放新網站的媒體檔案,因此我們將建立「files」這個folder,並且建立在「domain.hellosanta.tw」這個資料夾裡面,即可為新的網站domain.hellosanta.tw所使用。

  5. 開始Drupal的安裝流程

    從瀏覽器進入domain.hellosanta.tw,即可看到同樣的安裝畫面,當然伺服器需要調整設定,將兩個網址都連到同一個網站目錄底下,才能夠進行操作,若伺服器設定部份不太熟悉,可以參考這篇文章XAMPP虛擬網址設定

  6. 建立獨立的模組Modules與模板Theme

    如果在這個domain.hellosanta.tw這個網站裡面想要安裝自己的模組與模板,完全不用擔心,只需要再建立兩個資料夾modules還有themes即可。

Druapl資料夾結構

在一個共用Codebase的基礎下,Drupal的資料夾結構就會變成以下結構(請看圖),放在all資料夾裡面的為共用的模組Modules與模板Themes,而放在自己網站內的則是獨立的模組。

一鍵安裝模組、更新模組或安全性更新

到了最興奮的時刻莫過於此,若現在要進行Drupal的全部網站進行指令,只需要下以下指令,即可針對全部網站一併處理

$ drush @sites drush-command

因此,若要進行全部網站的核心更新,也只需要下以下指令即可:

$ drush @sites up drupal

若有需要針對個別的網站進行Drush command,也只需要進入那個網站的資料夾(有settings的那個),即可開始進行下Drush Command的動作囉!

結論

對於一個有很多網站需要製作或維護的公司來說,Drupal的Multi-Site多網站功能,是大家的一大福音,可以不用再面對每次更新一堆Code或共同的核心模組一堆造成維護上的麻煩,若是開發網站時,也可以將很常用的模組放置在共用的Code資料夾裡,也可以讓製作一個新網站時,省下了重新下載常用模組的時間,Enjoy!