1,890 瀏覽數

CentOS 6 – 升級 Drupal 6 到 Drupal 7

參考說明 Upgrade process

  1. 第一步先確定 Drupal 7 是有支援原本你使用的模組 module 以及佈景主題 themes 有支援再來更新到 Drupal7.在更新前下面幾個網址可以讓我們了解如何更新模組 module 與佈景主題 themes.
    http://drupal.org/node/948216 這邊提供模組 module 與佈景主題 themes 的更新方式.
    http://drupal.org/node/895314 這邊提供 Drupal 7 模組表,你可以檢查一下原本非核心模組是否變成核心模組.
    http://drupal.org/update/moduleshttp://drupal.org/update/theme 如果你的模組 module 與佈景主題 themes 是自己寫的這可以參考如何將版本更新成 Drupal 7 
  2. 這份文件是要將 Drupal 6 升級到 Drupal 7 ,如果你還在使用 Drupal 5 建議先將 Drupal5 升級到 Drupal 6  http://benjr.tw/12355  ,再來升級成 Drupal7.
  3. Drupal 6.x 核心模組要先更新到最新的,其他模組要建議更新到最新的版本.
  4. 更新前建議先備份你的 database 和 Drupal 目錄 – 尤其是你的 "sites" 這個目錄,這個目錄包括了你的系統設定檔以及額外模組 modules 資料和佈景主題 themes, 當然一些特別的 module 所存放在 "modules" 目錄,(升級後某些 modules 會無法使用必須重新下載來使用),還有 "files" 這一個目錄,它包含所有 uploaded 的檔案.其他的像是 .htaccess or robots.txt 在更新前都需要保留下來.

    Note: 上面的說明是單一網站時所以要備份的東西,如果你是多個網站存放再同一台 Server 時不同的子目錄一樣要備份下來.備份請參考 http://benjr.tw/12352

  5. 記得你的第一個產生的 user嗎?( user ID=1) 最好使用這個使用者來登入,他有足夠的權限可以來執行 update.php 這個程式
  6. 先將你的網站設定成離線 "Off-line" (Administer > Site configuration > Site maintenance) 模式,這樣可以避免網站的資料庫在更新時被中斷以及更新失敗等問題發生離線設定在 http://www.benjr.tw/admin/settings/site-maintenance  (請使用自己的網站名稱 ,www.benjr.tw 是這個網站的網域名稱 )
  7. 因為佈景主題 theme 也是會有版本問題所以先將你的 theme 改成系統預定的 Garland 或是 Bluemarine (Administer > Site building > Themes)
  8. 因為模組 modules 會有版本的相容問題,所以在更新前最好把所有非 "Core – required" or "Core – optional" 暫時關閉 (Administer > Site building > Modules. )

    如果該模組已經不使用,建議直接移除掉.

  9. sites 這個目錄是要保存下來的,不過裡面的 default.settings.php 建議就移除掉(這不影響真正的設定檔為 settings.php)

    # rm sites/default/default.settings.php
    
  10. 除了 'sites' 與 'files' 這個目錄不刪除外其他目錄皆移除.如果修改過 .htaccess 以及 robots.txt,記得備份下來,更新後需要恢復
  11. 假如有任何模組 modules 移除了,請將他從 sites/all/modules 或是 sites/*/modules 目錄移除.其它還要繼續使用的不管是不是和 Drupal 7 相容還是請保存起來.
  12. 將新下載來的 Drupal 7 版本解開至 web server 目錄 (Linux 的 Apache 預設目錄為 /var/www/html)

    # wget http://drupal.org/files/projects/drupal-7.tar.gz
    

    請自行上網查詢最新版本

    # tar -zxvf drupal-7.tar.gz
    # cp -R drupal-7/* /var/www/html
    
  13. 如果你有修改過 .htaccess , robots.txt 這兩個檔 ,請將設定值還原.
  14. 檢查一下設定檔  sites/default/settings.php 是否可以寫入

    #chmod a+w sites/default/setting.php
    
  15. 開始要升級了在瀏覽器執行 update.php 像是這樣 http://www.benjr.tw/update.php (請使用自己的網站名稱 ,www.benjr.tw 是這個網站的網域名稱 ). 依據他指示的步驟開始 update 資料庫和 Drupal 的資料.
  16. Note: 如果你在瀏覽器執行 update.php 出現錯誤時請檢查下面的檔案:

    – 在目錄 /var/www/html/sites/default/settings.php 確定下面的字串是如下面所示.
    – 修改 $update_free_access = FALSE;
       改成 $update_free_access = TRUE;
    – 要忘了在更新完成後要將 $update_free_access = FALSE ;
  17. 更新後建議再把資料庫 database 備份一下.
  18. 請更新並將非核心 non-core 的 module 模組使以及佈景主題 themes 用成 Drupal 7 版本的.
  19. 到 Administration > Reports > Status report 檢查一下是否有錯誤訊息產生.
  20. 再一次確定 settings.php 剛剛修改的  $update_free_access 設定值為 FALSE,以及設定檔  sites/default/settings.php 的權限只能是唯讀.
  21. 回到 Administration > Configuration > Development > Maintenance mode 請將網站狀態設定為上線 ,設定並不要忘記儲存起來

在跟新過程中,遇到一個錯誤訊息,系統一直無法下載所需的檔案,錯誤訊息如下:
./sites/default/files directory permission check is incorrect during install AND status report
上網查了一下,跟 files 目錄權限有關,先暫時把權限打開,就可以繼續更新你的系統了.更新完不要忘記要把權修修改回來.

如果你對 Drupal 7 不熟可以參考 Drupal 7 管理官方網頁的介紹 http://drupal.org/getting-started/7/admin

3 個網友的想法 “CentOS 6 – 升級 Drupal 6 到 Drupal 7

  1. 自動參照通知: Drupal | Benjr.tw

  2. 自動參照通知: Drupal 7 – Benjr.tw 搬家 | Benjr.tw

  3. 自動參照通知: CentOS 6 + Drupal 7 | Benjr.tw

發表迴響