目前最成熟與使用最普級的Drupal版本當屬Drupal 6。2011年初Drupal
' ], H' |1 b% I- k8 \7雖已正式釋出,但對於Drupal 6使用者來說是否已經可以升級上去?該怎麼升級? / s1 |6 }. i8 N. g! d0 D
>> Drupal核心程式下載
6 k# c9 k& |( L >> Drupal 7釋出的報導
+ E2 F1 W1 ?2 c9 g) i( l9 O, |! D, q7 R
根據Drupal.org的官方說法,Drupal 9 Z; `/ J" R5 ?8 }' k4 T
7效能更好,使用介面更友善,而且也整合了更多的功能。像是在Drupal 6中使用很普及的CCK,以及圖片上傳介面等。
0 P: e+ J# k" Q6 P$ o4 x( {
( ^- R4 k2 ?% f& G. T△ 圖說:Drupal
) E9 N# v. w a7管理介面改成Overlay(堆疊)的設計,與Drupal 6有很大的不同。
5 m% T& o! K& {
7 `3 t# m$ ]/ z6 y' Q7 L; q無論如何,技術這東西都是往前看的,所以如果你現在要架一個新的網站,而且選擇要使用Drupal了,除非你要開發或在使用某種功能,這個功能的相關模組完全不知何時才會從Drupal ) N" |! D L5 p1 L
6移植到Drupal 7,否則在版本選擇上還是以Drupal 7為優先考量──但你要有Drupal 7的模組選擇還較為缺乏的心理準備。 3 o' f P: v: t8 J" U% b: Z& H
$ o l! N$ n3 [$ P但如果你目前的網站是以Drupal
7 }4 s3 J0 x& L) h" W' v7 W6所架設,那麼是否能夠升級到Drupal 7呢?這就要非常謹慎了。
# b! O6 u7 x1 U1 M
Drupal小升級〔 主要版本內升級〕
1 r+ w+ a6 q$ Z8 ?# Z
7 F* [# M! c0 U+ ]- F
Drupal的升級有兩種:一是小升級,一是大升級。
. @, o5 l# X8 K& L: R
小升級指的是,例如Drupal 6.17升級到Drupal & M( _6 z# i' D- P
6.20,也就是在主要版本內的升級──其實這有點類似軟體更新而已。
s4 K5 s4 l- E, T1 ^- ]
目前Drupal的「主要版本」在使用中的有Drupal 5.x,Drupal
- e3 E5 T4 Q) w7 K$ A6.x,以及Drupal 7.x;其中Drupal 6算是最成熟,模組最為完整與多樣,使用也最普遍的主要版本。而最舊的Drupal
( \: i7 |* H' ?2 ~5 V5,在官網的Drupal核心下載裡已看不到,如果你是要新架網站,完全不建議使用Drupal 5。
1 Q& x# B) L2 z2 X5 PDrupal 6現在最新的版本就是Drupal ' ?; {2 }+ D& r7 H
6.20。如果你要從前一版本(例如6.17)升級到Drupal 6.20,相當簡單。
V7 ]& U. Y3 h7 ?: E+ g我的經驗是,大略依以下升級過程(而且不用很嚴格遵守)就可完成小升級;而如果你的心臟夠強,或者反正你的網站也沒人在看,毀了也不怕,那你也可以試試跳過1, Y6 W. w. @& n, C
2,直接從第三步驟開始攪不好也行〔不過這裡的方法本人完全不負責任,網站出問題請自行負責〕:
: F& Q# E5 j0 L
4 c: o' h1 u& ^9 O, {) n5 z% }$ g0 X1. 將網站設定為離線狀態。
- J5 I; z+ H2 {: W1 K% |+ h6 i
2.
$ y S, h3 n# N5 w- B" a3 G1 p. J做好網站備份-包含所有的網站目錄與檔案,以及資料庫。這是做任何網站升級之前一定要做的,以免升級過程當中,和結果有什麼不測,才可以藉由備份檔挽回。
' j: x& I8 N0 D4 \& u
; {! Z/ F& i2 v! g3.
$ E v% i3 I; g2 i; N2 W2 p0 z下載最新版核心程式,解壓縮之後,再把全部的檔案上傳到網站的對應位置去,把舊檔覆蓋掉即可。
3 v& G5 E o( X& O% k如果你是屬於小心謹慎型的人,那麼這是官方建議的標準升級程序:
5 V' J) r2 g' } T7 B
( F2 V$ I9 w c. Z
4 O8 e; Z+ a/ i$ N1. 以具有管理員身份的帳號登入你的Drupal網站〔最好用天字一號的使用者帳號〕
5 {5 d) b8 N" v; y
F9 r" n( U! z, K2 E2 i
2.
* n6 {7 ^8 M2 J$ q到「管理/網站設定/網站維護」(/admin/settings/site-maintenance)將網站狀態設定為「離線」
7 x6 U9 h8 C8 Y8 E8 c9 @2 n3 Z" s3. 2 Z, \0 ^ B) i$ Z, j% B
保留sites目錄以及你自己所建的資料,其餘網站目錄內所有的核心程式檔案全部移除。如果你有修改.htaccess或robots.txt等檔案,或是settings.php,記得在完成安裝之後重新套用之前備份的設定。 9 R. _4 V9 C- D: \
3 `# ~# L: Z2 o/ E4. 下載最新的Drupal , b$ `1 n! o3 z* S% I$ j" T
核心程式版本,解壓縮之後上傳到你的Drupal網站的相對應目錄裡。
7 K! r- T+ d0 e0 O7 e3 ?5. 必要時重新套用你的一些網站設定,如.htaccess或robots.txt。 $ x m; |6 V; a% d; Y
9 S; p; R3 V8 A6 P0 n0 C6.
6 d8 i. S# s9 H2 n( A8 {& q執行updaet.php資料庫表格更新。如果網站未自動出現這個更新要求,可以在你的網站網址後面輸入/update.php
. w$ Q7 o( k7 e& \- U& o& I(類似這樣:http://www.example.com/update.php)。 $ ~& N* y0 k) l! L- C
0 Y8 j* ?# C5 {) u如果無法執行update.php,打開setting.php進行設定的修改:
- h, o$ r4 D/ d$ n! T) ~
: g B, V& @& R4 f y' \6 ^9 x
將以下程式碼
: Y2 ^( m- z6 j n( Y4 l $update_free_access = FALSE;
# M; f" }: O% O改成:
: X) d' }' q# s1 b $update_free_access = TRUE;
' Q }6 N- S) o/ L3 C$ R/ \
* H- D1 a6 c. j6 t4 c& r; n在做好更新後,記得把這個設定值改回FALSE的設定值。
% [( u" V! D" m3 T# Z6 s) E
7.
- W* b* r( }# G; T% K* f到網站狀態報告網頁(/admin/reports/status)確認一切正常,升級後沒有任何問題。
! L$ p0 C4 }' F o, w
8.
9 R5 i8 @- C, [' t5 d確認settings.php檔案內的$update_free_access的設定值為FALSE。
8 K: @, P) m; E$ d, d9. 重新將網站狀態設為「上線」。
) S6 y2 @" S& w* V
Drupal
* @" L, P& e7 ^( U" a6升級到Drupal 7
7 d$ o% S" _3 u& J$ e8 S0 R2 D: [: h; G
如果你的網站代管在有CPanel的ISP那裡,那麼不管大小升級,升級過程可能相當簡單,只需按幾個下一步就完成,完全不需這裡的說明方法,但既使你有Cpanel,網站該不該升級,能不能升級,還是必需先經過評估。
4 r/ A4 x( |5 Q# F/ N/ v2 d# [( \
. }4 n9 c# t6 q- f1 ]' Z0 @
特別是主要版本之間的升級不是把核心程式升級上去就可以了,更大的問題會是你在Drupal
4 X( n8 Q. l0 d6上的模組/功能Drupal 7已準備好了嗎?
# y+ r7 K1 H/ z例如,先前我的升級評估中就發現,我的Drupal
/ c5 K; b, @- f' t/ R1 t- }6網站中所使用的重要模組Gmap,都還未移植到Drupal 7。而在Drupal ! [ f# ] X# n. R2 r$ a
7釋出之後的這一個多月中也接觸與使用過很多模組及版型,也發現到尚未從Drupal 6移植到Drupal 7的情況相當普遍。
, f* {# P0 M5 a6 G
所以,以目前的時間點來說,在做升級決定之前,對於模組與功能問題,一定要做好謹慎的評估與測試--如果你需要的模組還未移植,是否有解決方案?就算已移植過去了,是否有相容性及執行上的問題 " T# P* b7 L* h) x) K
?
% D0 j* M" ]. m9 E% G
也因此,在以下所整理的官方升級文件中未說明的是,商業性的網站,強烈建議,先在測試網站進行測試運作,確定可行之後再進行升級。 9 [) A& m, ~; w B" c; u# K
〔我記得先前有看過一份說明如何做測試的官方文件,一時之間找不到,找到之後會在此提供連結〕
" E& ?" e) @4 y
由於我的Drupal 6網站有許多模組在Drupal 6 w; m2 w( w* | y6 n
7中都沒有解決方案,所以我目前並沒有將它升級到Drupal 7,也就暫時沒有樣本可以step by
0 c5 d! C; H) u$ R1 G. g) gstep跟看倌介紹升級過程。退而求其次,我將官方的升級文件整理如下,以供有升級需要的朋友做為參考(相關文件可在Drupal
! f1 y: X) W" B: I" T7核心程式中找到UPGRADE.txt檔):
$ B. n m- V/ U: G1 q
# c7 X! Q* _! G; t) I! u
1. 檢查你所使用的模組及版型(themes)是否已移植到Drupal 7。 9 G( H/ ]4 ^7 @ X
: ^; t9 R% \/ s' r7 ^>> 關於貢獻模組檢查參考這裡
' K9 X0 ^& }) w1 F. ^
>> 關於客製化模組相容性檢查參考這裡
; _& Y* H, H' p* m, p
>> 貢獻的版型檢查參考這裡 D- L$ `# p( W& S' i
, Z5 Y' Y- t! W. `! H4 j>> 客製化的版型相容性檢查參考這裡
( E% F0 m0 T; q- n1 I7 I
>> 還有這裡
& T3 Y0 \8 u: j6 n
〔黑傑克註:檢查完之後,如果你所用的模組與版型Drupal
" S1 [' Q# V8 K) Z4 j, }5 X7還沒準備好,那麼大概就註定你暫時不能升級到Drupal
7 J) w' S/ C, R# h7 w% A; t6 Q+ W7,以下程序就不用再看;若確定可以升級,要謹慎安全起見,那麼建議先在原網站下開一個子目錄安裝Drupal 7進行測試,沒問題再進行升級。〕 . M$ S+ [% G c3 V* G
0 ]! r. X# R. |2 M" I' K
: F, p! y5 ?8 k' p7 {1 a2 V% R" z△ 圖說:從Drupal 6升級到Drupal % o& ^' F$ `/ Z$ y9 t+ ^
7的主要問題都圍繞在模組上,升級之前的評估裡,要先確認你所需的模組Drupal {1 m% q$ d) U/ r! ^
7都已準備好;而在升級過程當中,必需先關閉核心模組之外的其他安裝模組,圖中模組為核模組
! q& n" r# x/ n0 W9 R8 B% } Z8 n
2. 更新到最新的Drupal 6.x版本。如果你是Drupal
/ ?& m' L" A# D& \5.x使用者,那麼必需先升級到Drupal 6.x。
2 A! n1 B6 D- g
3. 以天字第一號使用者(ID 1)身份登入網站。〔就是當初架站安裝Drupal那個帳號〕
3 n! } H# t- a7 n
0 s4 O8 o! d% Q, G3 N5 S
4. - B1 \4 [! |: M v* G& p3 _( {8 T5 ~
到「管理/網站設定/網站維護」(/admin/settings/site-maintenance)將網站狀態設定為「離線」,然後儲存設定。
# j4 p6 B6 O3 F
# G" v& @8 Z$ K
! q# N- v! l- M
5. 0 ^5 N6 B) `: W) F' z9 s
到「管理/網站建置/版型」(admin/build/themes),將預設版型設回Garland。
- u5 g5 g$ C" B" Q& z
' V0 Y) O3 Z. R) r
# L" a: c2 Z; W$ \9 N k
6.
6 f& k& ]1 e5 f5 f( ~0 b到「管理/網站建置/模組」(admin/build/modules)將「核心」類以外的模組,全部關閉。〔由於模組與模組間有依存關係,所以可能重覆操作很多次才能夠將所有非核心模組都關閉〕
+ }# H; p4 `( f) \/ z0 e3 C/ B
1 J0 Y0 c, b, Q1 Q
如果有些模組是你不會在Drupal
7 X/ z# m6 @& R5 P3 s* B7中用到的,而且相關資料你也不會再使用,那麼可以將此模組移除。
" s- {0 B0 o3 g
7. 移除網站中的sites/default/default.settings.php檔案 6 ]% {1 D7 U: }1 r7 Q- L2 c
) }7 G& \+ ?% A) n& U Y6 G
8.
% }4 }/ _' L) ^4 k9 A3 f$ `除了sites目錄,以及你自己加入的檔案與資料匣保留之外,所有的核心程式檔案與資料匣全數移除。
( O- c5 @( q& a6 j, w4 ~ [+ [# `如果你修改了.htaccess或robots.txt等檔案,記得在升級完成時重新從備份檔中重新套用舊的設定。 0 {' K! |$ ]0 L) b/ M
( C# v4 z+ B2 S3 w
9.
- {( x! I! M1 Z$ k- K如果要移除任何的模組,請從sites/all/modules,移以及sites/*/modules移除。其餘的模組,不管與Drupal
6 }/ @7 U6 H- u& u- e3 Z7相不相容,都應保留在原處。
; m& ]6 {) A6 \1 A6 `+ u& s
10. 下載最新版的Drupal ( ?" x0 m3 B7 n8 D) @' F1 G
7,解壓縮之後把裡面的檔案與目錄上傳到你的Drupal網站的相對應位置。
3 K7 i8 A- P1 g+ q9 Q
11. 重新套用.htaccess或robots.txt
5 J7 k* ?9 ~* o+ w: {& t
12. 將settings.php檔設為可寫入,讓更新過程當中能夠將它轉變成Drupal / ?8 T$ n( m, q; |, @
7.x 的設定檔,通常它的位置在:
3 J+ Q# o' c% V; U sites/default/settings.php
T% e2 G& T4 V. G3 A4 e K; S. z〔初學者看這裡:一般在Linux主機裡這個檔案的權限為444,更改方式為:在FTP上傳介面上,在settings.php檔案上按滑鼠右鍵,選擇「檔案權限」,然後勾選「寫入」的權限,或者將下方「444」的數字改為666。但在完成升級之後記得把權限設定設回成444。〕 0 N. W6 d0 @+ ~% R2 A# D0 e' {
! u8 ^! I+ S9 @- G8 d h
↓ Linux主機上更改檔案權限方法,透過FTP軟體連上主機後在檔案上按滑鼠右鍵,選擇檔案權限 1 s" j, T+ ~1 w) n8 c
6 i! b9 y2 }9 Q
@ e2 F& F# y: o
↓ 勾選"寫入",或把下方的444數值改成666
( S3 i) q+ Q3 T1 s% `( {9 }/ S7 V2 g) V% ]2 I
' p: v0 h7 X6 P4 e4 ^
5 A, o$ J8 I6 Y2 B- Q6 s8 I
13.
& q7 F0 }8 d5 ^執行update.php進行資料庫表格更新,如果系統未自動出現該更新通知,請自行在網址後輸入/update.php(類似這樣http://www.example.com/update.php)。 , _% E, {# t" u) X
( F* v- d- q! z* Y2 Z: j6 W
如果無法更新update.php,請依以下方式修改settings.php: A4 o7 C2 o0 b H" H: v. v3 m: R
% c3 R/ M% E8 L- }2 y5 O, W; Y
以文字編輯器開啟settings.php :
4 j9 e4 A6 Q* ^% k- n5 {7 T
找到以下的程式碼
% w% v M3 |! `4 N9 u
$update_free_access = FALSE;
' m; v. ~: g' D
將上面的程式碼改成:
" g4 b c( K% @4 ?! g $update_free_access = TRUE;
% m* ?9 [( w7 J R5 a9 L& M9 l6 T( i
完成Drupal更新之後,記得把$update_free_access改回成FALSE
4 [. I. [2 c8 ^ Q9 t! _& v" R* G0 {
- ?! V) c9 Y1 P3 n6 d4 e6 q$ ]9 O/ i14. 在核心程式更新之後,備份你的資料庫
, `% D" c3 g; G& }15. 上傳非核心的模組與版型,
: G% n( I, e! p0 [! |. t _
16.
: x& h& q% f6 P: U9 i+ n到「管理/報告/狀態報告」(admin/reports/status)確認升級是否成功
4 D# B7 u+ I7 o17. ' S5 k5 r: f, O) k' d4 V
確認settings.pho的$update_free_access改成FALSE值。
6 A7 w$ j G7 B9 \. x8 X( k( Q% ] f18.
3 g9 V' z" |( p6 @$ t3 {到「管理/設定/開發/維護模式」(admin/reports/status)把網站狀態更改為「上線」(取消勾選「以離線模式運作」核取方塊)。
8 o% y* b7 R. k8 G
4 j+ ^5 K4 t' `( ^$ Z% X
! Q6 k. E! `4 }' u& W& W
最後,不管做什麼樣的升級,過程當中如果遇到什麼錯誤訊息,記得將錯誤訊息完整記錄下來。 ; @$ Y) z2 s/ d3 F# N
( h ~6 E5 z2 I7 s8 I而如果升級失敗,除了記錄當中的錯誤訊息之外,建議先利用備份,把網站回覆,再依所記錄的錯誤訊息,去社群尋找解決之道。
声明:本文由型动视觉转载自IT黑傑克 谢谢原作者!
3 ?0 o: r! W- [$ _, D/ d