五月 9, 2016 | 後端和Drupal
如何將一般drupal網站轉換Multi-site多網站??
前言:
在看過,上一篇「一鍵升級你所有客戶的安全性更新: Drupal Multi-Site 多網站架構」後大家是否對於網站轉換成Multi-site十分心動?但是又感覺無從下手呢?
這邊讓我們來說說,如何讓一般drupal網站轉換成Multi-site!!
建立Multi-site的drupal網站
相信大家在上一篇「一鍵升級你所有客戶的安全性更新: Drupal Multi-Site 多網站架構」中已經對Drupal Multi-Site有了認識,所以這邊就簡單提出以下大致Drupal Multi-Site網站建立步驟,詳細的還請大家回到上一篇詳讀喔!!
1.建立一個Folder,並且名字取名為新網站的Domain名稱。
ex:建立Multi-site的資料夾"domain.hellosanta.tw"。
2.複製default.settings.php到「domain.hellosanta.tw」這個資料夾,並且改名為settings.php。
3.移動files資料夾到「domain.hellosanta.tw」這個資料夾。
4.開始Drupal的安裝流程。
5.匯入之前網站的資料。
註:原本的模組或版型先不要移動,維持在sites/all/底下,等等才處理。
資料庫更動
這時會發現,node頁裡面的圖片路徑是失敗的,這是因為原本網站的圖片路徑是/sites/default/,如何解決呢!?
1.資料庫匯出
把MYSQL資料庫dump出來,移動至domain.hellosanta.tw資料夾內執行。
mysqldump -u root -p d7 > old_d7.sql
2.更改匯出的資料庫
更改dump出來的MYSQL資料庫,把old_d7.sql裡面所有/sites/default/路徑,更改成/sites/domain.hellosanta.tw/的路徑。
sed s@sites/default/@sites/domain.hellosanta.tw/@g old_d7.sql > new_d7.sql
3.刪掉現有的資料庫
清除舊的資料庫,為了防止部份資料錯誤問題,先清空Drupal的資料庫(執行前先"備份"資料庫喔!!)。
drush sql-drop
4.匯入更改後的資料庫
把更改過路徑的new_d7.sql匯入回d7的資料庫。
mysql -u root -p d7 < new_d7.sql
這時開啟網站,會看到node頁裡面的所有圖片,都以可以正常顯示。
註:執行以上步驟前,最好都要先備份的資料庫,以避免失敗後,無法重來。
遷移模組
在一開始的時候,我們有提到所有的sites/all底下都先放到一樣的位子,這個時候如果不想共享模組或版型,就必須把檔案搬到,sites/domain.hellosanta.tw/底下的modules或themes或libraries。
1.建立資料夾
在sites/domain.hellosanta.tw/內建立modules、themes、libraries
mkdir modules themes libraries
2.安裝drush的模組
registry_rebuild算是個更新drupal註冊表的drush模組。
drush dl registry_rebuild
3.清除網站快取
如果沒有清除快取,下面在執行模組搬移之類的動作時,有極大機率造成drush rr的錯誤。
drush cc all
4.移動模組
到sites/all/modules,找到至幾不想共享的模組。
mv xxx ../../domain.hellosanta.tw/modules/
移動到sites/domain.hellosanta.tw執行drush rr 更新註冊表。
drush rr
完成網站轉換。
註:
drush rr 如果出現錯誤,請查看錯誤,並且把錯誤的模組mv回原本路徑,接著在drush rr 一次。
移動任何東西前,一定要清除快取。
結論
drupal 轉換成Multi-site的障礙,主要就是node中的圖片路徑問題與模組版型的移動,這些問題的解決,使之前沒有使用Multi-site來架設的網站,都能開始轉換Multi-site來運行,不用再面對每次安全性更新時維護上的麻煩,也節省了許多的空間與時間。
還在對於使用Multi-site感到心動,但是擔心舊網站而遲遲不知如何下手嗎?快來試試吧!!