目前最成熟與使用最普級的Drupal版本當屬Drupal 6。2011年初Drupal & O1 w# ]% i0 N: s- l) w+ X
7雖已正式釋出,但對於Drupal 6使用者來說是否已經可以升級上去?該怎麼升級?
' [% |# t$ E$ q$ y$ i; T, f >> Drupal核心程式下載
5 n+ P. h# t4 P. ^' [ >> Drupal 7釋出的報導
9 x- @* v3 o$ [, p根據Drupal.org的官方說法,Drupal + e& H2 X0 O( A4 v3 J+ v# J8 y5 t
7效能更好,使用介面更友善,而且也整合了更多的功能。像是在Drupal 6中使用很普及的CCK,以及圖片上傳介面等。
( d5 E8 x) I( z5 C9 k/ W; E
1 W- u$ W) l- s% |) r) p9 ~- q& D
△ 圖說:Drupal & V) \4 m* l9 f% G7 W
7管理介面改成Overlay(堆疊)的設計,與Drupal 6有很大的不同。
( }0 C/ M9 z+ v0 l4 Q( s/ I8 ^( l( b- x Z* ~
無論如何,技術這東西都是往前看的,所以如果你現在要架一個新的網站,而且選擇要使用Drupal了,除非你要開發或在使用某種功能,這個功能的相關模組完全不知何時才會從Drupal
T# s2 q: W( }' b3 n5 o6移植到Drupal 7,否則在版本選擇上還是以Drupal 7為優先考量──但你要有Drupal 7的模組選擇還較為缺乏的心理準備。
( b4 n$ s- O' v/ g8 E
1 }6 w. _( I. X z
但如果你目前的網站是以Drupal ) @( d" w: i0 F0 H
6所架設,那麼是否能夠升級到Drupal 7呢?這就要非常謹慎了。
- ~1 b; T! S- t% |' ?. Y
Drupal小升級〔 主要版本內升級〕 1 C6 t1 g( O6 u% b9 a# k8 S
$ P% ]! w) k& s( \0 y7 h. [1 aDrupal的升級有兩種:一是小升級,一是大升級。
: ^2 T0 f1 g$ S/ y% U: j小升級指的是,例如Drupal 6.17升級到Drupal
4 }# P. G6 \2 e: }0 b1 N" s9 \6.20,也就是在主要版本內的升級──其實這有點類似軟體更新而已。
/ T. L/ H U$ v) f/ h% F目前Drupal的「主要版本」在使用中的有Drupal 5.x,Drupal
5 b% l+ s6 H/ F& c6 O6.x,以及Drupal 7.x;其中Drupal 6算是最成熟,模組最為完整與多樣,使用也最普遍的主要版本。而最舊的Drupal , l# D/ s. W' h s# b6 d, |! a
5,在官網的Drupal核心下載裡已看不到,如果你是要新架網站,完全不建議使用Drupal 5。
5 l l$ @8 p3 f! _ T: a4 }
Drupal 6現在最新的版本就是Drupal ; y# @- E( {5 ?
6.20。如果你要從前一版本(例如6.17)升級到Drupal 6.20,相當簡單。
. u! b" |) v8 L! x3 L$ c我的經驗是,大略依以下升級過程(而且不用很嚴格遵守)就可完成小升級;而如果你的心臟夠強,或者反正你的網站也沒人在看,毀了也不怕,那你也可以試試跳過1, 3 H- R, L7 v, S4 w. V% ~$ c+ R
2,直接從第三步驟開始攪不好也行〔不過這裡的方法本人完全不負責任,網站出問題請自行負責〕:
2 G5 W! Q6 H! S) E% `/ Z
: f1 C- R/ w2 h6 X* K! G' z" e3 q1. 將網站設定為離線狀態。
7 Y7 s5 s. y8 \/ {2.
, v ~+ M- \. R/ ^# u: J做好網站備份-包含所有的網站目錄與檔案,以及資料庫。這是做任何網站升級之前一定要做的,以免升級過程當中,和結果有什麼不測,才可以藉由備份檔挽回。 : t/ e" d" a1 j$ ?; v
- L+ p- A: S e1 D C
3.
3 z6 v- L! m* O0 E0 r) } _下載最新版核心程式,解壓縮之後,再把全部的檔案上傳到網站的對應位置去,把舊檔覆蓋掉即可。
& n+ W$ s% l( P# D! K
如果你是屬於小心謹慎型的人,那麼這是官方建議的標準升級程序:
& P( R X* o* M7 ?
5 E6 y Q& P/ Y' Y7 A
% z5 ^5 c) r$ \ u% k4 A7 O0 h0 n4 f1. 以具有管理員身份的帳號登入你的Drupal網站〔最好用天字一號的使用者帳號〕
. G+ v3 S ` j: R( f. p
% @9 q* y1 q( C! q$ ~, Q7 i# W" L+ u
2. : @, {6 Z+ V6 p- F2 d0 A
到「管理/網站設定/網站維護」(/admin/settings/site-maintenance)將網站狀態設定為「離線」
( T" P6 l9 B# S3. ' \3 w6 L K A7 t, c4 K: ]% U) s# {
保留sites目錄以及你自己所建的資料,其餘網站目錄內所有的核心程式檔案全部移除。如果你有修改.htaccess或robots.txt等檔案,或是settings.php,記得在完成安裝之後重新套用之前備份的設定。 ( g8 y9 p/ r6 D- U1 K$ p
# _. z# W) X: j0 K/ o; A4. 下載最新的Drupal
3 H8 T6 w, p7 b/ \1 i) x核心程式版本,解壓縮之後上傳到你的Drupal網站的相對應目錄裡。
& ]4 P3 Q4 n; j. e; u
5. 必要時重新套用你的一些網站設定,如.htaccess或robots.txt。
# @; W$ y- R$ w
9 t; g2 U8 \' S# W( M# l# [6.
. M4 N/ z4 x |0 ?執行updaet.php資料庫表格更新。如果網站未自動出現這個更新要求,可以在你的網站網址後面輸入/update.php
2 N/ ?. A* b+ W6 ~ W(類似這樣:http://www.example.com/update.php)。
$ C1 E/ m5 y' Q) ]5 ]
1 A/ f9 p* q0 X7 m4 b* _$ p
如果無法執行update.php,打開setting.php進行設定的修改: 3 B6 }: h! ~2 D1 G# q
" ^$ T" p9 }5 v+ I+ x將以下程式碼
* V+ M% ` G$ @' E, S7 ] $update_free_access = FALSE;
- s8 ]8 M" x* I' F; }" B改成:
$ f8 T( }& J# [: r5 \, F0 b& \. `
$update_free_access = TRUE; - s/ t7 @. {# h8 ~5 C: M9 V
# l/ @4 Q3 G: J# p( G在做好更新後,記得把這個設定值改回FALSE的設定值。
" N& ?8 ]4 p2 G( ? q) U3 R6 O7.
9 j# {$ \+ e& X; x# R, Y到網站狀態報告網頁(/admin/reports/status)確認一切正常,升級後沒有任何問題。
u* q* @7 X3 q' s1 M/ ^) ^8. 3 ^0 L* Q$ g1 ~$ t
確認settings.php檔案內的$update_free_access的設定值為FALSE。
5 c3 `/ t8 f9 t+ K4 a, c8 n2 y% K' Z4 f
9. 重新將網站狀態設為「上線」。
- Z: [5 \+ R) ?9 P* S' _, R0 {
Drupal r1 |4 h1 Z2 c* q4 W
6升級到Drupal 7
% x0 w$ i2 w/ t% d* N0 v) X( P
如果你的網站代管在有CPanel的ISP那裡,那麼不管大小升級,升級過程可能相當簡單,只需按幾個下一步就完成,完全不需這裡的說明方法,但既使你有Cpanel,網站該不該升級,能不能升級,還是必需先經過評估。 ! a6 Y1 K; K/ d# ?+ a( C
/ i: |- H2 w+ W9 [: j( D5 l
特別是主要版本之間的升級不是把核心程式升級上去就可以了,更大的問題會是你在Drupal
_( L' \. {& n$ w8 P' X6上的模組/功能Drupal 7已準備好了嗎?
. d+ u$ }, N2 Z: V+ f
例如,先前我的升級評估中就發現,我的Drupal 6 d- O3 T+ Z, T# p
6網站中所使用的重要模組Gmap,都還未移植到Drupal 7。而在Drupal
% b. h U. a; M; T& Z5 u2 t. l7釋出之後的這一個多月中也接觸與使用過很多模組及版型,也發現到尚未從Drupal 6移植到Drupal 7的情況相當普遍。
2 O' m1 O, o; C! r
所以,以目前的時間點來說,在做升級決定之前,對於模組與功能問題,一定要做好謹慎的評估與測試--如果你需要的模組還未移植,是否有解決方案?就算已移植過去了,是否有相容性及執行上的問題
5 V0 w% j# {; S?
8 b$ Q: X1 n; j' e+ t
也因此,在以下所整理的官方升級文件中未說明的是,商業性的網站,強烈建議,先在測試網站進行測試運作,確定可行之後再進行升級。 * s0 s$ U9 ^ A4 |# n2 r
〔我記得先前有看過一份說明如何做測試的官方文件,一時之間找不到,找到之後會在此提供連結〕
6 ~; q( L: [ N
由於我的Drupal 6網站有許多模組在Drupal
1 [, Q3 `; t N7中都沒有解決方案,所以我目前並沒有將它升級到Drupal 7,也就暫時沒有樣本可以step by
0 b8 o$ ^& P: o5 B1 l; N, P r. @step跟看倌介紹升級過程。退而求其次,我將官方的升級文件整理如下,以供有升級需要的朋友做為參考(相關文件可在Drupal
' ~! q2 S% r( w/ V4 N% T5 C7核心程式中找到UPGRADE.txt檔):
1 n' g0 x9 Q/ v8 a6 k: O1 Q! C: n) w
1. 檢查你所使用的模組及版型(themes)是否已移植到Drupal 7。
6 s9 Y/ s6 [( G
2 ^: }+ U1 B# {; g/ V1 d5 X
>> 關於貢獻模組檢查參考這裡
' n6 u" z4 j' V; p! F2 J2 ~
>> 關於客製化模組相容性檢查參考這裡
, K* c+ y$ B. C1 C" ]
>> 貢獻的版型檢查參考這裡 2 ~# j s. K0 v+ s6 _" c- Q
K, _4 s0 }) C8 P>> 客製化的版型相容性檢查參考這裡
$ ?6 m' y, | s" {8 @6 i3 G7 l, [8 Q
>> 還有這裡
. u. R! |- a. B2 F) v〔黑傑克註:檢查完之後,如果你所用的模組與版型Drupal
f; {2 A; L8 c7還沒準備好,那麼大概就註定你暫時不能升級到Drupal
9 n* X8 M- S) G$ [$ X. U7,以下程序就不用再看;若確定可以升級,要謹慎安全起見,那麼建議先在原網站下開一個子目錄安裝Drupal 7進行測試,沒問題再進行升級。〕 & G2 d; T8 l* R# d. w
% D8 U6 `; W+ J- s
2 X& \+ n. K7 L! n
△ 圖說:從Drupal 6升級到Drupal * e0 R0 v8 I, v! |# Q
7的主要問題都圍繞在模組上,升級之前的評估裡,要先確認你所需的模組Drupal ' ?; s9 H2 \8 [
7都已準備好;而在升級過程當中,必需先關閉核心模組之外的其他安裝模組,圖中模組為核模組
) d- b1 C, _5 g3 m) P T" }# M
2. 更新到最新的Drupal 6.x版本。如果你是Drupal
}4 K3 G7 P* V+ \) y5.x使用者,那麼必需先升級到Drupal 6.x。
( q* W% {/ K5 S$ g* K
3. 以天字第一號使用者(ID 1)身份登入網站。〔就是當初架站安裝Drupal那個帳號〕 : F' g2 }5 i6 M- i3 e/ ]
* B k8 b( {( U n$ T! P; P
4. 6 B& t! e( w H8 \4 X6 k- k' |# B
到「管理/網站設定/網站維護」(/admin/settings/site-maintenance)將網站狀態設定為「離線」,然後儲存設定。
1 X$ S* [4 O- ?+ `! r5 E4 x8 s) f
5 v5 Z5 P$ o" ^/ D/ S
1 O* r+ A2 I2 Z9 w; {
5.
/ M5 z! I% n1 p% S到「管理/網站建置/版型」(admin/build/themes),將預設版型設回Garland。
9 e9 N! _. N, b* S& \% ~
. i: h: N% W6 Q z! J' \/ j1 N( O4 F3 A: P$ R) u
6. 8 l9 v; f7 ]% U8 Q
到「管理/網站建置/模組」(admin/build/modules)將「核心」類以外的模組,全部關閉。〔由於模組與模組間有依存關係,所以可能重覆操作很多次才能夠將所有非核心模組都關閉〕 6 l; `" C8 ]1 l# m
) C( c8 c% ^* J# v/ \
如果有些模組是你不會在Drupal 5 p& S* |9 ~& C" P- B3 T |
7中用到的,而且相關資料你也不會再使用,那麼可以將此模組移除。
) b6 R% d" n$ a3 [
7. 移除網站中的sites/default/default.settings.php檔案 9 [1 Y- R% T! E( A% K; w; T
. D$ l* ~# j( n6 C" A. z
8. 6 w$ B2 k; U. `( w1 t+ v/ V0 d
除了sites目錄,以及你自己加入的檔案與資料匣保留之外,所有的核心程式檔案與資料匣全數移除。
/ P; h+ v; r6 S4 B
如果你修改了.htaccess或robots.txt等檔案,記得在升級完成時重新從備份檔中重新套用舊的設定。 % U/ J* h1 y# g+ E- c. a1 E% G2 L3 b
$ _8 V, ^5 l# @5 N* ~: @) M) j1 R
9.
! a$ ?( i$ O$ L ]( S2 g如果要移除任何的模組,請從sites/all/modules,移以及sites/*/modules移除。其餘的模組,不管與Drupal 0 |, v9 M% P; Y7 ^2 |- m
7相不相容,都應保留在原處。
0 D2 y+ a% |4 v8 ?
10. 下載最新版的Drupal 9 B4 i9 `5 S4 K3 X
7,解壓縮之後把裡面的檔案與目錄上傳到你的Drupal網站的相對應位置。
/ f7 G& w0 g# P
11. 重新套用.htaccess或robots.txt
3 _6 i; t' I" @: J) R/ n, W
12. 將settings.php檔設為可寫入,讓更新過程當中能夠將它轉變成Drupal
( x, y" B& S( q+ ?6 @, F# T4 v7.x 的設定檔,通常它的位置在:
+ ^5 O }5 t3 R1 \% c sites/default/settings.php
6 h) z9 `# P4 p〔初學者看這裡:一般在Linux主機裡這個檔案的權限為444,更改方式為:在FTP上傳介面上,在settings.php檔案上按滑鼠右鍵,選擇「檔案權限」,然後勾選「寫入」的權限,或者將下方「444」的數字改為666。但在完成升級之後記得把權限設定設回成444。〕 3 c `9 f7 D) e8 i S2 l, X8 r' d" O
3 @) H$ k3 t0 I* Y
↓ Linux主機上更改檔案權限方法,透過FTP軟體連上主機後在檔案上按滑鼠右鍵,選擇檔案權限
( B0 u5 v7 w8 V8 M
) L& r& v0 ?. @. r# }/ a0 T- N
4 H% e; s0 h* [; n! T/ }" @& H↓ 勾選"寫入",或把下方的444數值改成666
) Q! \" S6 V0 Z. @
7 O& b) ]! |$ |* _
- [8 \/ W9 H4 z# B* F4 I5 K
# K |/ c/ N/ X: g! J1 _0 [
13. 4 _! D% e: H. ?4 B% ]
執行update.php進行資料庫表格更新,如果系統未自動出現該更新通知,請自行在網址後輸入/update.php(類似這樣http://www.example.com/update.php)。 / t9 t/ S9 V2 q7 `* t7 ]7 }4 T' N
. t J$ d, m( F) g如果無法更新update.php,請依以下方式修改settings.php:
+ i% V) _7 m- I% J& N
. i0 e9 E/ ]" L n
以文字編輯器開啟settings.php :
0 O1 @9 _3 j i+ A/ i( X
找到以下的程式碼
) h5 f% ]( i4 K $update_free_access = FALSE;
) F& C9 l4 Q5 W+ `7 ^# X將上面的程式碼改成:
/ ?( V( b9 r, x" v- K+ h2 Q4 `
$update_free_access = TRUE;
- g- C/ x/ @& `% Q) n. H
完成Drupal更新之後,記得把$update_free_access改回成FALSE # H; ~: S/ l( Z) A- O) _- L
" u) F; Z7 V5 t- @ s% d7 k2 d14. 在核心程式更新之後,備份你的資料庫
& x: M" g9 J& A/ v' _* J15. 上傳非核心的模組與版型,
& q. T# j% v9 m/ z) ~2 h& ~4 x16.
# L( R% S) Z1 N$ s7 X# ~到「管理/報告/狀態報告」(admin/reports/status)確認升級是否成功
; B( u! n& `, E: E0 @17.
+ l9 _+ p0 i7 S/ N8 p3 W確認settings.pho的$update_free_access改成FALSE值。
' H2 @5 s: P# M# Z. O5 d) P# J18. N1 [. }! j4 ?: f0 O5 [
到「管理/設定/開發/維護模式」(admin/reports/status)把網站狀態更改為「上線」(取消勾選「以離線模式運作」核取方塊)。 1 `# N6 s& Z* v/ d7 _0 C1 Y
; j. `# C& x( s/ \0 d5 T
3 X7 `. a! a e7 C& ^/ S `最後,不管做什麼樣的升級,過程當中如果遇到什麼錯誤訊息,記得將錯誤訊息完整記錄下來。 7 [+ y' x! \9 Z8 n t
4 P: n- S. R, c4 M, z& x* p而如果升級失敗,除了記錄當中的錯誤訊息之外,建議先利用備份,把網站回覆,再依所記錄的錯誤訊息,去社群尋找解決之道。
声明:本文由型动视觉转载自IT黑傑克 谢谢原作者!
y& m! ^& u0 ~% f4 x$ L- P; l