升級目標
由Moodle?4.5+ (Build: 20241129)
升級到Moodle 5.0.1+ (Build: 20250629)
參考教程:moodle升級(詳細版)-CSDN博客
操作平臺:寶塔
通過寶塔進行備份
備份文件
將/www/wwwroot/moodle 和/www/wwwroot/moodledata 復制到
/usr/moodle/backup/20250702
備份數據庫
進入寶塔,選擇“數據庫菜單”,默認MySQL
點擊有備份,在彈窗中點擊“備份數據庫”按鈕,等待備份成功
下載新包
在搭建的moodle網站通告模塊檢查可用的更新,下載想要升級的版本
開始升級之路
解壓
將下載的包上傳到/www/wwwroot
重命名原來的moodle文件夾,然后將上傳的zip解壓為新的moodle文件夾
將舊moodle文件夾中的config.php復制到新的moodle文件夾
升級php
訪問moodle網站
提示php版本不夠
在軟件商店安裝高版本php
安裝擴展 fileinfo yaml mbstring
修改配置,刪除disable_functions中的proc_open,pcntl_signal
在網站設置中修改php版本
再次訪問Moodle網站
升級MySQL
點擊繼續
1. 需要升級mysql
將之前備份的數據庫下載下來,然后卸載mysql,重新安裝更高版本mysql,然后導入備份
2. php安裝擴展exif
3. 使opcache可用
php安裝擴展opcache
然后點擊moodle網站下方的重新載入
在php.ini增加max_input_vars = 5000,然后重啟php,然后重新載入,點擊下方的繼續按鈕
進入到檢查插件階段
將提示“缺少磁盤!”的插件從舊文件夾復制到新文件夾的相應位置
然后繼續點擊頁面下方的按鈕,一直往下點
直到升級成功
發現異常
第一次異常
但是在訪問設置頁面的時候,發現報錯了
也就是說在這個類初始化的時候types被傳了string,所以全局搜索在什么地方使用時傳的string,發現是/lib/editor/atto/plugins/aic/settings.php
這個插件是從舊文件夾中復制過來的,分析可能是這個插件還沒有兼容新版本的moodle,構造方法的入參個數都不對,所以簡單處理一下,把第四個入參那個空字符串刪掉試試,改成下面這樣
第二次異常
在訪問頁面過程中又發現
查看代碼如下
這一行代碼語法甚是奇怪,所以嘗試修改一下
至此終于升級完成!
感言:每次升級都能遇到各種奇奇怪怪的問題