Error message

Notice: Undefined offset: 1 in counter_get_browser() (line 70 of /home/weldon/www/sites/all/modules/counter/counter.lib.inc).

Drupal multi-site(多網站)架設

Categories : 

如果你是Drupal的重度使用者,那你一定不能錯過multi-site這個超級無敵的功能

何謂Multi-site

若一部主機上,你同時需要管理多個Drupal網站,碰到要更新模組、Drupal核心時,就得一個一個網站去將元件更新,這樣豈不是相當的麻煩?於是Multi-site便是可以共用Drupal的核心模組、版型、自己下載的模組等,以後若碰到更新的時候,只需要更新一次,就可以完成所有網站的更新動作啦!

Multi-site的類別

  • 子網域:www.librarythings.info(主網站)、multisite1.librarythings.info(子網站1)、multisite2.librarythings.info(子網站2)
  • 子目錄:librarythings.info/blog(主網站)、librarythings.info/multisite1(子網站1)、librarythings.info/multisite2(子網站2)

本篇文章主要介紹子目錄的multi-site設定,子網域的設定網路上也有許多相關的文章,Drupal主站也說明相當詳細

子目錄Multi-site設定

Step1.

按照正常步驟安裝第一個Drupal網站,以本次的例子,便是要建立一個名為blog的子目錄,建立完成後,便將Drupal的檔案放入這個資料夾

/var/www/html/blog

Step2.

建立第一個子網站,在sites資料夾下建立一個名為librarythings.info.multisite1的資料夾,並在子資料夾中新增files、themes、modules等,並將default.settings.php檔案重新命名為settings.php放入子資料夾中

/var/www/html/blog/sites/librarythings.info.multisite1

/var/www/html/blog/sites/librarythings.info.multisite1/settings.php (chmod 777)

/var/www/html/blog/sites/librarythings.info.multisite1/files (chmod 777)

/var/www/html/blog/sites/librarythings.info.multisite1/modules

/var/www/html/blog/sites/librarythings.info.multisite1/themes

Step3.

建立軟連結(symbolic links),以後只要輸入網址librarythings.info/multisite1,Drupal Multi-site的功能就會發揮作用

 ln -s /var/www/html/blog /var/www/html/multisite1

Step4.

前往網址http://librarythings.info/multisite1安裝第一個子網站

Step5.

設定.htaccess檔案,以啟用簡潔網址(clean urls)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/~blog/site/multisite1
RewriteRule ^(.*)$ multisite1/index.php?q=$1 [L,QSA]

其他細節

  1. 在blog/sites/all資料夾中,可以放入所有網站需要共同使用的模組(modules)、版型(themes),若是子網站單獨需要的模組與版型,則放入blog/sites/librarythings.info.multisite1/modules與blog/sites/librarythings.info.multisite1/themes資料夾中
  2. 要將已經獨立建立的Drupal網站改為multi-site,同樣可以按照上面的步驟進行,唯獨要注意的是一旦一開始是獨立建置的網站,所有的模組、版型都要放在sites/all之下,就不可放入sites/librarythings.info.xxx資料夾之下了

參考資料