[教學]如何更新Drupal主程式?

在Drupal中,網站升級更新有分成兩種,一種是「升級(upgrade)」另一種則是「更新(update)」,這兩者的差異在於前者是大版本變動,後者則是小版本的修正。執行「更新」比較不會造成網站更新升級失敗的問題,因為它主要是針對Bug臭蟲修正,或是小功能加入,沒有去大幅度的動到主程式系統,通常有看到小版本的更新,管理者大多可以看到更新提示後立刻動作。

當網站有出現更新訊息時,管理者這時候就要注意到這項更新訊息,因為有些更新是發現系統漏洞,需要緊急修復的。當網站需要更新時,在Drupal中可以透過後台的提示訊息了解到,但若要執行更新必須手動更新Drupal,所謂的手動更新就是要透過FTP的方式將檔案覆蓋成新的版本,接著執行更新程式才會完成更新動作。

或許在更新這部分,Drupal的便利程度不同於WordPress,因為WordPress更新可以透過後台滑鼠點擊就可以更新到最新版本,一個很方便的懶人模式。而Drupal更新方式則是透過傳統的FTP介面上傳覆蓋,不過這也是大多數套裝程式的更新方式,一來穩定、二來不容易出錯,因為透過線上更新方式容易發生連線失敗、檔案太大載入錯誤等等的問題。

更新Drupal主程式需要注意的重點就是Drupal備份,想要進行備份,主要有幾個資料夾需要進行備份,如果不備份的話,當Drupal主程式覆蓋過去後,會造成問題,通常就是網站連不上資料庫(因為設定檔案被覆蓋掉),所以想要更新Drupal主程式,千萬要記得先進行備份動作,否則發生悲劇就不好解決了。

如果你還沒有架設Drupal,可參考教學:如何架設安裝Drupal?

第1步  會看到提示訊息的地方是在Drupal後台,以最高權限的管理者進入後台,例如我們點上方的「設定」,進入後會看到更新提示訊息,這時候我們可以點「可使用的更新程式」。

[教學]如何更新Drupal主程式?

 

第2步  接著,在管理報告中會看到目前Drupal主程式尚未更新,因此我們可以點「可使用的更新」來到更新說明網頁。

[教學]如何更新Drupal主程式?

第3步  在更新網頁中,可以看到目前我們只有Drupal主程式需要進行更新,因此點最後面的超連結「更新資訊」,進入官方說明文章。

[教學]如何更新Drupal主程式?

第4步  在官方版本Releases說明頁面中,目前我們可以得知我們需要更新版本是Drupal 7.18,在網頁上可以先看看新版動了哪些部分,接著我們可以在下載表格中找到我們要下載的更新檔案,官方提供兩種壓縮模式,你可以選擇「tar.gz」下載,不過這個要解壓縮兩層,你可以透過7-zip解壓縮

[教學]如何更新Drupal主程式?

第5步  當下載完之後,我們接下來要關閉網站,將網站調整成「離線模式」,讓一般訪客無法在網站上新增任何內容,被免升級時出錯。要將網站調整成Drupal離線模式,您可以參考香腸之前寫過的教學。

請閱讀如何設定Drupal網站為離線狀態?

第6步 接下來讓我們先跳到「Drupal備份教學」,想要進行Drupal程式升級,首先必須透過FTP軟體,先來到你Drupal網站的根目錄,將你要備份的部分選取然後進行備份,基本的備份有「sites」(包含設定與模組等)、「themes」(佈景主題)、「.htaccess」(系統調整)、「robots.txt」(網站索引控制),其他部分就是請自行備份你有修改過的檔案。

[教學]如何更新Drupal主程式?

第7步  接著請備份網站資料庫,資料庫的備份在此不多寫教學,可以參考香腸之前寫過的教學文章,進行資料庫備份。

第8步  當資料備份完畢後,這時請將Drupal檔案覆蓋到Drupal網站目錄中,接著再將剛剛的備份檔案覆蓋回來,蓋掉預設檔案的設定變成自己原先的設定,接著請直接造訪Drupal升級網頁,執行「update.php」,進入後可看一下更新說明,確定都執行後請點﹝Continue﹞。

  • 【1】假設你的Drupal在根目錄為:/public_html/
    執行路徑為:http://你網站網址/update.php
  • 【2】假設你的Drupal在子目錄中,例如:/public_html/你的drupal目錄/
    執行路徑為:http://你網站網址/drupal目錄名稱/update.php

[教學]如何更新Drupal主程式?

第9步  接著Drupal會開始進行資料庫等的網站升級,若是升級完畢或是無更新,會顯示綠色提示文字,而且左方的步驟會打勾,目前是因為沒有要更新的項目,所以左邊只有兩個勾勾就停止,因為小版本的升級大部分不會去動到資料庫。這樣就升級完畢囉!

[教學]如何更新Drupal主程式?

第10步  回到Drupal後台管理查看,例如我們點「報告」→可用更新,查看一下是不是已經更新完畢,全部變成綠色的背景色了呢?[教學]如何更新Drupal主程式?

 

誰能執行Drupal的update.php?

或許大家會好奇,誰有權限執行「update.php」,其實這是存在於setting.php內的設定,如果將其中的設定調整之後,那任何人都可以執行這支「update.php」程式,那其實是很危險的,所以如果你發現你網站這隻程式在沒有更新的情況下可以執行,記得趕快去關閉它。

第1步  一般狀況下,可以利用登出狀態去查看「update.php」查看是否可以執行,如果出現如下圖的說明,標題為「Access denied」,這表示程式無法執行,所以網站是安全的。如果出現和前面第8步是相同的,這表示目前是開放可以執行,這很危險的。

[教學]如何更新Drupal主程式?

第2步  若發現update.php是可執行的,但是網站並沒有要更新,那您得趕快修改關閉此項功能。來到你的Drupal目錄中,找到此路徑「/sites/default」,在這目錄中會看到有一隻「settings.php」,請透過NotePad++開啟它,找到「$update_free_access」將它的值改成「FALSE」儲存覆蓋。這樣就可以囉!

[教學]如何更新Drupal主程式?