自動更新部署

出自MoodleDocs
於 2015年4月21日 (二) 05:06 由 Moten ZHang對話 | 貢獻 所做的修訂
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳到:導覽、​搜尋

啟用部署更新


插件概覽頁面使用安裝按鈕高亮可用更新。

在Moodle 2.4以上版本,管理員可以在管理>網站管理>伺服器>更新通知頁面啟用部署更新。到那時,當有可用更新時,按鈕「安裝更新」將會顯示在插件概覽及插件檢查頁面。

注意:此功能需要啟用可用更新通知

如何工作

  1. 作為有效Web服務的已安裝插件新版本的URL地址或壓縮包的可用更新信息可以在download.moodle.org找到。
  2. 點擊「安裝更新」按鈕並在下一頁面確認部署更新之後,名為mdeploy.php的獨立實用程序就會被執行。
  3. mdeploy的作用是用來驗證部署請求確實是從上一步的確認頁面發出的。
  4. 新版本的壓縮包可以從Moodle插件目錄中獲取。
  5. 執行簡單的完整性查驗以確認是否正確的下載了壓縮包。
  6. 舊版本的插件源碼被歸檔到名為moodledata/mdeploy/archive/的文件夾以作備份之用(例如,僅以防對代碼作了微調)。
  7. 移除含有舊版本插件的文件夾,然後使用下載的壓縮包替換掉。
  8. 瀏覽器將會重定向到正常的升級過程頁面。

此時,可以更新另一個可用更新或根據如上步驟手動執行另一壓縮包的升級程序。

禁用部署更新

少數情況下(如完全獨立的伺服器可能會變更了很多代碼,或管理員有自己部署更新的解決方案——如通過Git管理),而不希望系統啟用自動部署更新。那麼可以通過在config.php文件添加如下代碼以完全禁用此功能:

$CFG->disableupdateautodeploy = true;

可能的問題

缺少安裝按鈕

如若沒有啟用部署更新功能(或在config.php文件里被禁用了),那麼將不會顯示安裝更新的按鈕。當該功能啟用時,頁面則會顯示可用更新的列表並執行前置檢查以確保部署可以正常運行。如若前置檢查失敗了,那麼會顯示一個彈窗的幫助頁面。

插件文件不可寫

部署期間,Moodle會把含有插件代碼的整個文件夾用新版本插件的代碼替換掉。Web伺服器應當有此文件夾及其所有內容的可寫權限。根據Web伺服器的設置及個人喜好,有多種方法可以做到這一點。插件文件夾準確的位置是根據插件類型來決定的。參閱插件開發人員文檔內的Moodle路徑確認完整的位置列表。

例如:假設Web伺服器是運行在Linux上的Apache,其用戶為www-data。Moodle安裝在/var/www/vhosts/moodle/htdocs目錄下。現在需要賦予郵票收集活動模塊的文件夾可寫權限,代碼如下:

 # cd /var/www/vhosts/moodle/htdocs
 # cd mod
 # chown -R www-data stampcoll
 # chmod -R u+w stampcoll

另請參閱安裝插件文檔。

無法下載軟件包

確保網站http://moodle.org/plugins是正常運行的。如若掛掉了,Moodle將不能從此處獲取壓縮包。等待網站正常運行後,再試着重新部署程序。

也有可能是SSL證書認證處問題了。參閱Moodle.org的SSL認證文檔獲取更多信息。

錯誤及異常


插件部署期間的錯誤頁面截圖 如果部署期間出問題了,請仔細閱讀錯誤頁面,然後把錯誤消息連同調試信息複製保存以作參考之用。同時,查驗mdeploy.log文件。mdeploy獨立實用程序記錄了所有步驟並將其記錄到文件moodledata/mdeploy/mdeploy.log。日誌文件通常記錄了引起失敗原因的額外細節和調試信息。

從錯誤頁面返回到上一頁面後,記得還要回到可用插件列表頁面(起初點擊「安裝更新」按鈕的頁面)。僅是回到上一確認頁面或重新加載當前頁面都將不能正常運行,因為此時的請求已經不能再被認證通過了。如果這樣做了將會引導至unauthorized_access_exception,從而發出消息「無法閱讀口令文件」(Unable to read the passphrase file)。

如下描述了可能遇到的錯誤及如何處理他們:

無法下載軟件包

查驗mdeploy.log文件的底部。應當是包含一行以「cURL錯誤」開頭的代碼,代碼後面是錯誤編號及錯誤說明。

cURL錯誤7 無法連到接伺服器

確保網站http://moodle.org/plugins此時是正常運行的。如若掛掉了,Moodle將不能調用調用Web服務從此處獲取可用更新信息。等待網站正常運行後重試。

cURL錯誤60 (SSL認證問題) 
這意味着遠程(moodle.org)站點的SSL證書認證出問題了。參閱Moodle.org的SSL認證文檔獲取更多信息。