目前最成熟與使用最普級的Drupal版本當屬Drupal 6。2011年初Drupal
( X+ G7 l* K+ p% `- ^7雖已正式釋出,但對於Drupal 6使用者來說是否已經可以升級上去?該怎麼升級?
0 }! a* Y) `* \1 ` >> Drupal核心程式下載
0 o# [: U1 s6 l7 r Q6 J >> Drupal 7釋出的報導
7 }; |7 V2 S2 O5 h7 w
根據Drupal.org的官方說法,Drupal . C- d. ^ m$ M
7效能更好,使用介面更友善,而且也整合了更多的功能。像是在Drupal 6中使用很普及的CCK,以及圖片上傳介面等。
0 E( m9 `7 e" D9 g/ ]) o" F
+ u P( M* x! ?) W6 _5 ?△ 圖說:Drupal 9 M2 H0 Y9 {# D' l' I. B
7管理介面改成Overlay(堆疊)的設計,與Drupal 6有很大的不同。
. E4 |% [0 z+ a* G7 E% i: T7 n% T
# U8 v7 }0 S9 H" G. e無論如何,技術這東西都是往前看的,所以如果你現在要架一個新的網站,而且選擇要使用Drupal了,除非你要開發或在使用某種功能,這個功能的相關模組完全不知何時才會從Drupal 6 E1 V N% q$ N/ p
6移植到Drupal 7,否則在版本選擇上還是以Drupal 7為優先考量──但你要有Drupal 7的模組選擇還較為缺乏的心理準備。
% A' V$ r- f8 J" k9 n- Z' H
4 T: g: o3 l; N6 e5 y: |9 x
但如果你目前的網站是以Drupal $ m3 p A0 m/ u( J
6所架設,那麼是否能夠升級到Drupal 7呢?這就要非常謹慎了。
4 r' t3 L/ h4 X. \
Drupal小升級〔 主要版本內升級〕
6 U! P4 x. |; a" E6 `
! s/ L( z( j! m1 j1 ZDrupal的升級有兩種:一是小升級,一是大升級。
# e. p6 f1 Z4 G2 E4 P, a G% Z小升級指的是,例如Drupal 6.17升級到Drupal ' z. ?# F3 ~6 S+ g3 X7 m0 A
6.20,也就是在主要版本內的升級──其實這有點類似軟體更新而已。
/ @+ v7 N B8 P5 L& s( Z+ _2 d目前Drupal的「主要版本」在使用中的有Drupal 5.x,Drupal
4 Q- F9 C/ U+ \ i" t& j, Z6.x,以及Drupal 7.x;其中Drupal 6算是最成熟,模組最為完整與多樣,使用也最普遍的主要版本。而最舊的Drupal
7 x5 a' g8 p+ n5,在官網的Drupal核心下載裡已看不到,如果你是要新架網站,完全不建議使用Drupal 5。
+ ^, `; E" F9 I3 S7 F" J( h2 h
Drupal 6現在最新的版本就是Drupal 3 J; T1 d, @: V; J5 ?" V. F
6.20。如果你要從前一版本(例如6.17)升級到Drupal 6.20,相當簡單。
) \5 J; R* H# S/ |7 w8 C9 ^
我的經驗是,大略依以下升級過程(而且不用很嚴格遵守)就可完成小升級;而如果你的心臟夠強,或者反正你的網站也沒人在看,毀了也不怕,那你也可以試試跳過1, 0 D6 T" ~) k" K7 ] }/ J! N
2,直接從第三步驟開始攪不好也行〔不過這裡的方法本人完全不負責任,網站出問題請自行負責〕:
, i8 R- w$ v: o
7 ~' k. _& }8 }$ @1. 將網站設定為離線狀態。
6 D) P& _5 X ^' O. z2. 4 y, D o' O. o; [" x
做好網站備份-包含所有的網站目錄與檔案,以及資料庫。這是做任何網站升級之前一定要做的,以免升級過程當中,和結果有什麼不測,才可以藉由備份檔挽回。 $ r, v, U% a8 J
" H% M' q1 d" a3.
5 j* r$ j u; W( j" F7 K下載最新版核心程式,解壓縮之後,再把全部的檔案上傳到網站的對應位置去,把舊檔覆蓋掉即可。
; u& B& [7 a; z3 ^( f3 d0 o% k如果你是屬於小心謹慎型的人,那麼這是官方建議的標準升級程序:
2 J. L v1 L; j6 L7 S, p
1 c8 h5 ` y* c& B& [$ F- B/ A
8 Y3 o* |/ a* i: e1 ]+ u
1. 以具有管理員身份的帳號登入你的Drupal網站〔最好用天字一號的使用者帳號〕
4 G( n4 Z/ B9 @
8 t2 w/ {5 X- Y7 B; ?7 H
2.
8 d: G! e1 y! D( _. k4 z9 n到「管理/網站設定/網站維護」(/admin/settings/site-maintenance)將網站狀態設定為「離線」
2 F! N$ k2 M# w4 X- G7 o( V3.
( F. A) q; B, I5 P) D+ x, [1 A保留sites目錄以及你自己所建的資料,其餘網站目錄內所有的核心程式檔案全部移除。如果你有修改.htaccess或robots.txt等檔案,或是settings.php,記得在完成安裝之後重新套用之前備份的設定。 , a Y* Z0 H4 s5 ?
* g2 E" h& w' O4. 下載最新的Drupal
6 J5 Y. {, I* D& O# e# f5 c1 |核心程式版本,解壓縮之後上傳到你的Drupal網站的相對應目錄裡。
: M. }5 x9 ^9 r3 g- C" v5. 必要時重新套用你的一些網站設定,如.htaccess或robots.txt。 . O0 m6 h: I( Y' _: K1 m0 m
( o! S% M1 w8 ]6.
3 |" O. ^# ^. M( U2 ^2 ?執行updaet.php資料庫表格更新。如果網站未自動出現這個更新要求,可以在你的網站網址後面輸入/update.php
6 D; o1 K' |, l S g
(類似這樣:http://www.example.com/update.php)。
7 b) x: t' Z% W! j" ^. n
& X3 O7 q5 {& q3 w; j. M7 M! Z
如果無法執行update.php,打開setting.php進行設定的修改:
# P4 Y7 [( K9 `( P1 ^; a' _
3 B5 ~0 ?9 c* ^# ?7 y
將以下程式碼
T4 b7 F' ^: H3 V, V
$update_free_access = FALSE;
9 m: B$ E0 l- ]8 q5 e
改成:
, u; N7 p, W# x) J) U' ?9 p ] $update_free_access = TRUE; : L2 s1 n9 m) |# c
/ Z7 O! [6 m! x
在做好更新後,記得把這個設定值改回FALSE的設定值。
) [2 D5 w3 ?! P. I2 B; w
7.
: X* E# A8 U$ x2 r7 F" s* s& q% l到網站狀態報告網頁(/admin/reports/status)確認一切正常,升級後沒有任何問題。
) i9 U G9 x/ S3 J$ S4 o2 u8.
7 ]5 i* Z4 b) K# j確認settings.php檔案內的$update_free_access的設定值為FALSE。
8 c' R9 P* ?% h: n2 f- p. e9. 重新將網站狀態設為「上線」。
0 V* d- x2 S) _" w+ `
Drupal 0 x' p: F7 @9 t6 E+ U& W( z
6升級到Drupal 7
" N, V P6 v) Z- c4 Y( y' [! [
如果你的網站代管在有CPanel的ISP那裡,那麼不管大小升級,升級過程可能相當簡單,只需按幾個下一步就完成,完全不需這裡的說明方法,但既使你有Cpanel,網站該不該升級,能不能升級,還是必需先經過評估。
( ?* ?) V; a& E4 k1 F/ i1 P8 g0 W7 l
0 R3 W9 ^2 O* n$ g% b1 f1 P
特別是主要版本之間的升級不是把核心程式升級上去就可以了,更大的問題會是你在Drupal / z8 d* T+ o- Q& V, @! z- `9 _
6上的模組/功能Drupal 7已準備好了嗎?
) m$ o1 U# W# G( _7 {" k8 D! {例如,先前我的升級評估中就發現,我的Drupal . A+ B$ u4 G/ b( \ v* ~* q$ M7 h, O
6網站中所使用的重要模組Gmap,都還未移植到Drupal 7。而在Drupal
5 r1 |& h |: k \" y7釋出之後的這一個多月中也接觸與使用過很多模組及版型,也發現到尚未從Drupal 6移植到Drupal 7的情況相當普遍。
* p: o& q( R+ {2 G所以,以目前的時間點來說,在做升級決定之前,對於模組與功能問題,一定要做好謹慎的評估與測試--如果你需要的模組還未移植,是否有解決方案?就算已移植過去了,是否有相容性及執行上的問題
+ N+ H7 A8 A, p' k5 P?
2 }7 M# h0 C W) ]也因此,在以下所整理的官方升級文件中未說明的是,商業性的網站,強烈建議,先在測試網站進行測試運作,確定可行之後再進行升級。 / V/ ~/ }5 }4 X; F. b
〔我記得先前有看過一份說明如何做測試的官方文件,一時之間找不到,找到之後會在此提供連結〕
2 p. B5 z5 b$ Z: L由於我的Drupal 6網站有許多模組在Drupal
# D' O# k# d q7 a& \% O7中都沒有解決方案,所以我目前並沒有將它升級到Drupal 7,也就暫時沒有樣本可以step by
# g8 a9 x4 f% h; Y9 Jstep跟看倌介紹升級過程。退而求其次,我將官方的升級文件整理如下,以供有升級需要的朋友做為參考(相關文件可在Drupal # n! c- L. P9 j5 o0 }7 a
7核心程式中找到UPGRADE.txt檔):
3 h( j1 i& k! r+ ^ N3 \) e; f& u i) r) ~; ?' J
1. 檢查你所使用的模組及版型(themes)是否已移植到Drupal 7。
/ D" R, P: O9 C% A& Y/ B
% |& \% P. O/ o) p0 Y
>> 關於貢獻模組檢查參考這裡
* ?- O0 V/ W0 e {; R>> 關於客製化模組相容性檢查參考這裡
5 L# I. V& {* r# g7 Z>> 貢獻的版型檢查參考這裡 3 q6 z2 E$ n7 e# ]9 Q
) V# A% ?) \! L6 J. H>> 客製化的版型相容性檢查參考這裡
5 X7 s9 C1 v) G. z3 [) a
>> 還有這裡
4 ?& i& \, J& q" S1 ~% \
〔黑傑克註:檢查完之後,如果你所用的模組與版型Drupal
3 ~6 C9 Z S' l8 D7 R7還沒準備好,那麼大概就註定你暫時不能升級到Drupal 1 \8 t* M0 G( _- x
7,以下程序就不用再看;若確定可以升級,要謹慎安全起見,那麼建議先在原網站下開一個子目錄安裝Drupal 7進行測試,沒問題再進行升級。〕 ( {& k( Z8 W/ `! Y( I- }% @3 o- m$ O. O
# B6 s- J2 Q, G3 Z) {. P8 D
% L2 G9 j! A: F" P( ?1 y
△ 圖說:從Drupal 6升級到Drupal
2 {; W: a3 b( G0 m W9 P' `7的主要問題都圍繞在模組上,升級之前的評估裡,要先確認你所需的模組Drupal 8 b, ~5 U7 A: Q% v
7都已準備好;而在升級過程當中,必需先關閉核心模組之外的其他安裝模組,圖中模組為核模組
' W3 s) Z7 K1 d. p1 R8 O
2. 更新到最新的Drupal 6.x版本。如果你是Drupal 2 ~6 D$ q3 k2 v" y+ A6 E
5.x使用者,那麼必需先升級到Drupal 6.x。
+ }/ M. t6 m& H4 Q9 f5 {5 N
3. 以天字第一號使用者(ID 1)身份登入網站。〔就是當初架站安裝Drupal那個帳號〕
0 M! _; F$ l$ |- u7 [( `
9 u# f+ J$ @9 I* U
4.
" T4 h' e$ `. t. \8 U到「管理/網站設定/網站維護」(/admin/settings/site-maintenance)將網站狀態設定為「離線」,然後儲存設定。
/ p* d4 h' w+ G+ Q! C, M
& T P' @6 X1 p) n& a7 t0 f1 k7 G
" ^) \6 E6 w4 f: F7 F& {
5.
$ h1 I c- w' Q: ?) W到「管理/網站建置/版型」(admin/build/themes),將預設版型設回Garland。
% [: V( Q- A$ a! V0 b
/ C2 i2 o0 l1 [$ r
% R) M: ?/ Y+ V
6. . Q7 c+ w/ u6 K- F
到「管理/網站建置/模組」(admin/build/modules)將「核心」類以外的模組,全部關閉。〔由於模組與模組間有依存關係,所以可能重覆操作很多次才能夠將所有非核心模組都關閉〕 / ]$ C6 }" a8 ?+ B/ \
) W% h% W' {2 r如果有些模組是你不會在Drupal
1 m8 |, _" X( O0 L0 Y" S# f7中用到的,而且相關資料你也不會再使用,那麼可以將此模組移除。
, n0 H! t% C- i' @4 k7 y4 r
7. 移除網站中的sites/default/default.settings.php檔案 ; K9 C! ~" b2 i) ]: C F+ G
) t0 T0 y1 |+ S% W! y
8.
& t6 n/ u, ~2 D" Y, z除了sites目錄,以及你自己加入的檔案與資料匣保留之外,所有的核心程式檔案與資料匣全數移除。
# D! w4 C. g2 @ E如果你修改了.htaccess或robots.txt等檔案,記得在升級完成時重新從備份檔中重新套用舊的設定。
$ n* }* i! E/ J1 f- W
9 D& B; M) j! j1 K$ \& |9 A% d
9.
+ Q$ H9 s8 A9 n6 k" j如果要移除任何的模組,請從sites/all/modules,移以及sites/*/modules移除。其餘的模組,不管與Drupal
4 j; F% d7 l* e* a6 F7相不相容,都應保留在原處。
* ~& p- g9 f2 g! c1 b
10. 下載最新版的Drupal
) a4 |& Z- j/ W5 I7 h! d% ^7,解壓縮之後把裡面的檔案與目錄上傳到你的Drupal網站的相對應位置。
# E( W# l) n! `
11. 重新套用.htaccess或robots.txt
; f( \- \' m& m1 s! b. m
12. 將settings.php檔設為可寫入,讓更新過程當中能夠將它轉變成Drupal
* E6 ]! m- c2 `4 p7.x 的設定檔,通常它的位置在:
+ \. R- v! C! G" N
sites/default/settings.php
, S' C0 K7 j( t, V$ U8 M〔初學者看這裡:一般在Linux主機裡這個檔案的權限為444,更改方式為:在FTP上傳介面上,在settings.php檔案上按滑鼠右鍵,選擇「檔案權限」,然後勾選「寫入」的權限,或者將下方「444」的數字改為666。但在完成升級之後記得把權限設定設回成444。〕
# a$ T3 r5 Z; }7 s- p- p) B
: b8 |3 z/ e# N$ j↓ Linux主機上更改檔案權限方法,透過FTP軟體連上主機後在檔案上按滑鼠右鍵,選擇檔案權限
4 P, l2 a" R. a3 o, a
6 G* I4 r# l' B7 f
2 @/ |7 W' }* z2 ]* M↓ 勾選"寫入",或把下方的444數值改成666
) c: m) t& `, T* x
- S# n1 f' }- K5 L/ I; M
1 c% P0 F# [ e
$ y9 N, r7 Q5 L. ]3 r- Q13.
) P% k. m2 [" I/ z: `( [ d# M; X執行update.php進行資料庫表格更新,如果系統未自動出現該更新通知,請自行在網址後輸入/update.php(類似這樣http://www.example.com/update.php)。 ' k& a, H+ ^# g3 B" d$ ~2 E
& |" P. J4 U( M4 |
如果無法更新update.php,請依以下方式修改settings.php:
! C% u$ f4 ]* M. m4 D
( r2 v3 y2 x$ \$ o以文字編輯器開啟settings.php :
+ A5 A; I# Y( U找到以下的程式碼
' w. q7 [/ z* {% T$ J
$update_free_access = FALSE;
# F6 ~2 ]8 t( f. f% Y5 H, D0 |# I
將上面的程式碼改成:
1 Q3 Z0 Q$ K: a9 E' L
$update_free_access = TRUE;
; ?8 z, s& h G3 H& i
完成Drupal更新之後,記得把$update_free_access改回成FALSE
3 x, I' d! Q7 X, x+ u1 F
: a3 j& A% b8 V: c
14. 在核心程式更新之後,備份你的資料庫
k x: m, {8 k& b2 h15. 上傳非核心的模組與版型,
4 M- T. ~; y& d9 p
16. 7 ? o' J- \" t5 I$ a! y& w
到「管理/報告/狀態報告」(admin/reports/status)確認升級是否成功
% q) G) z* g2 H. |2 c" c17.
$ _. M: @" ^& D4 w- e9 c確認settings.pho的$update_free_access改成FALSE值。
3 t% n) c! v* D5 T9 X# h4 |
18. 6 w3 A; c3 @$ ~6 V
到「管理/設定/開發/維護模式」(admin/reports/status)把網站狀態更改為「上線」(取消勾選「以離線模式運作」核取方塊)。 4 F3 N8 O7 A6 n1 _' M
2 i1 R0 M4 w5 X
5 V( t q6 q! S7 q最後,不管做什麼樣的升級,過程當中如果遇到什麼錯誤訊息,記得將錯誤訊息完整記錄下來。
5 u! r% ]7 }% U' o
; P+ {9 K: c- T. ~7 W
而如果升級失敗,除了記錄當中的錯誤訊息之外,建議先利用備份,把網站回覆,再依所記錄的錯誤訊息,去社群尋找解決之道。
声明:本文由型动视觉转载自IT黑傑克 谢谢原作者!
; \+ Y- W5 Z' h8 M! i: D, P