Drupal 10升級筆記(從Drupal 9升級到Drupal 10的問題解決)

Jack 發表於

易學網的內容管理系統(CMS)已經從 Drupal 9 升級到 Drupal 10。讀者在使用網站時有任何問提歡迎向站長回報。


從本月開始,易學網所用的 Drupal 9 正式退役,Drupal.org 不再提供任何的技術支援與更新。使用 Drupal 9 的網站後台,也一直出現兩個錯誤訊息:

d9endoflife

除此之外,其實還另有好幾個黃色的警告訊息:主要是一些使用中的功能與模組,將在下一版的 Drupal 10中遭到淘汰,所以最好在 Drupal 9就開始自行終止使用。

為了維持網站長期而穩定的運作,就得隨時將網站軟體更新到最新狀態。所以,升級到 Drupal 10已是勢在必行。

其實,去年易學網才剛升級到 Drupal 9,然後這一年多來,Drupal.org不斷地發出各種訊息要開發者儘快升級到 Drupal 10。然而,有些模組(擴展功能)甚至最近 Drupal 9 才剛有 beta版釋出,更別說 Drupal 10了。在這方面,個人認為,Drupal.org的升級步調,應該再協調一些,至少等模組(擴展)跟上之後再推新平台。

升級準備

做任何重大升級之前,先做好備份,這種重要而例行的事就不多說了。網站備份有二:一是網站資料,二是資料庫。記得兩者都要做好備份。

接著是Drupal舊站的準備工作。

首先是要保持核心程式與模組(擴展)的最新狀態,全都升級到最新版。 

核心程式部份,直升 Drupal 10的條件,是至少要 Drupal 9.5版。先前易學網已升級到 Drupal 9.5.11 。因此可以直升。

依網路上的一些訊息說明,Drupal 6, 7, 8的使用者,得先升級到 Drupal 9之後才能夠升級到Drupal 10。然而,在升級過程當中發現,Drupal 10管理後台有個「升級」的功能,原以為那是 Drupal 9升級到 Drupal 10用的,就像 Drupal 9也有個類似功能讓用戶從 Drupal 7升級。但用了才知道,原來那是專為 Drupal 6, 7用戶升級用的。至於是否可以真的藉以直升,我沒嘗試。但有此升級需求的用戶,可以試試。

核心程式的版本沒問題之後,接著就是要檢查網站所用的模組(擴展)了。

依照網路上的一些訊息說明,要把所有的擴展升級到最新版,而且是與 Drupal 10相容的版本。但個人經驗是,很多相容版,實際上在升級過程當中還是會出問題。

究竟要如何處理擴展功能,是升級到 Drupal 10最關鍵之處。所以這裡要介紹一個重要的工具:upgrade status 模組

在安裝好 upgrade status(升級狀態)模組之後,進入其設定頁面就可以清楚看到網站的整備程度,如下,本站要移除有五個,要更新的有三個:

upgrade status

 

依照一般的說明與教戰守則,會建議把 Drupal 10已經不支援的不相容模組刪查,至於有些Drupal 10 不相容但有對應支援版本的,則更新到最新的D10相容版。

但這裡比較建議,在這個表格中,不論是建議移除或更新的,全都將其移除。而那些需要更新的,等到升級到 Drupal 10之後再重新安裝。

例如,這次升級過程當中,Acl與Libraries這兩個擴展都有 Drupal 10的對應支援版本。雖然已經升級到Drupal 10支援的最新版,但在升級過程當中還是變成失敗的主因。最後是重新回到原點。

因此強烈建議,將所有目前不相容的模組全數刪除。甚至,除了 upgrade status表列的之外,後台如果有什麼無用的contributed modules,也就是社群貢獻的非核心模組,全數在舊站中刪除,可以減少升級的麻煩問題。

在處理好這些模組問題之後,接著的升級過程和平時核心程式的升級很像,但建議可參考這篇文章,用composer依照該文章的程序升級。但要注意的是,composer指令中的Drupal 9版本編號記得修改。像我的網站是從Drupal 9.5.11升級,所以就將9.5.9版號改成9.5.11。若有遇到什麼問題,再依輸出的資訊逐一處理即可。

升級之後的問題

如前所述,Drupal.org在版本升級進程上相當粗暴,根本不考慮網站功能是否跟得上。

雖然Drupal 9升級到Drupal 10問題相較之下比當初從Drupal 7升級到Drupal 9少很多,但小問題還真不少。

例如,Drupal.org似乎在長期發展上想要捨棄原有的 Forum(論壇)功能,所以對於 Forum相關模組的支援不足從 Drupal 9 就已開始。而現在到了Drupal 10,ACL和Forum Acess兩個模組雖說會支援,但確問題重重。Forum Acess甚至連alpha版都沒得用。然後無論是從Drupal 9升級還是全新安裝的 Drupal,都會出現Forum模祖的一個錯誤訊息:

forum error

出現這個錯誤讓人很困擾。首先,糟糕的是,目前這個問題並無解方。Drupal的開發團隊雖知道有這個問題,但好像要到下一版的核心,也就是 Drupal 11才會解決。

最讓人擔心的是,這會不會影響網站的功能或穩定?所以網站在升級完成之後,為了觀察與了解這個問題,試用了一整天之後才敢切換到 Drupal 10。

其次是,像colobox的圖片光箱功能,Drupal 7時代原本運作得非常好,但 Drupal 9就廢了。雖然D9也提供這個模組,但安裝之後完全不能用,所以最後還是得手動布署,將程式碼手動放到template檔中。這個問題到 Drupal 10還是沒解決。

而文字編輯器方面,從 Drupal 9安裝沒多久之後,Drupal.org就一直通知要從 CKEditor 4升級到CKEditor 5。

原本在Drupal 9時代,好不容易把CKEditor 4調校到稍微好用一些些了,現在升級到 Drupal 10又得換到在Drupal上還不成熟的CKEditor 5。記得先前原本想依系統建議升級到CKEditor  5,但發現到anchor會出問題,所以作罷。現在實際使用才發現,文字格式的按鈕竟然沒有,雖然有人開發模組,但未受到Drupal官網的安全建議認可,且實際安裝之後,竟然讓文字編輯器當掉。

其他或許還有些問題,要再更多時間才會發現。若再發現其他問題,再來補充。