目錄:
前言:
由於cms在網路上根本沒有中文教學,就連英文都只有論壇而已,官方文件又臭又長,對有需求的人和初學者很不友善,因此這篇文章就誕生了。
在這篇文章裡,我修復了一些pip套件相容性的問題,你可以放心地使用python3.10(當然有3.8最好),且cms也是使用最新版本。如果你想快速安裝可以使用Docker,請參考這篇。
主機環境:
Ubuntu : 20.04或22.04
Python and pip : 3.8或3.10
Cgroup Version: 1 (cms只允許v1)
查看Cgroup版本
如果是v2要切換到v1。
首先更新所有套件
下載cms會用到的套件(包括官方和我實測後發現還需要安裝的)
把cms從github上載下來
加入cms user
做完後記得要Logout再Login,記得回到cms資料夾
安裝python套件
初始化
進到vim後直接打要修改的行號加gg
,就會跳到該行,接著按進入編輯模式,修改完後按esc並輸入:wq
退出vim。
🐞1️⃣
在13行改成以下形式
🐞2️⃣
在106行改成以下形式
進入資料庫
設定資料庫和密碼,記住這組密碼等下會需要
退出資料庫
進入cms.conf
把第59行的0000
替換成剛設定的密碼
初始化資料庫
更換Secret Key
官方文件建議每一場比賽都要換一個新的secret key
建立一個admin帳號(他會回傳密碼給你)
格式為:cmsAddAdmin <admin name>
啟動admin管理介面
接著開啟管理介面,網址:localhost:8889
或ip:8889
安裝ngrok
設定token,這裡提供一組token給有需要的人,也可以自己去ngrok辦帳號,即可拿到一組免費的token。
最後設定要訪問的網址
複製這串網址就可以用啦~
接著在admin管理介面新增使用者帳密、題目以及一場比賽,至於怎麼建立比賽可參考CMS Online Judge 使用教學
建立好比賽後按ctrl+C終止cmsAdminWebServer。
開啟Ranking介面
計分板網址:localhost:8890
開啟比賽介面
如果只有一場比賽就輸入,否則看要開啟哪一場比賽
比賽網址:localhost:8888
最後就大功告成啦🎉試著登入並Submit看看吧
如要使用計分板的話要記得先執行cmsRankingWebServer
,cmsResourceService -a
會啟用所有的物件但不包括cmsRankingWebServer
。
DB預設密碼為0000
,如果cms只是測試用可把密碼設定成0000
就不用再改cms.conf了。
刪除整個CMS :