2011年5月11日 星期三

Debian ZeroJudge 系統架設完整詳細流程

本篇將教導大家自己架設高中生程式解題系統 ZeroJudge:

架設之前請先架設好 MySQL 伺服器,建議可以再安裝 Apache2.2 、 PhpMyadmin 以方便管理。此外,由於 ZeroJudge 是使用 Port 80 ,所以必須要修改 Apache2.2 預設的Port,各位可參考下列文章;
首先使用者先到 ORACLE 下載 JDK1.5 。請注意,必須為 JDK1.5, JDK1.4 或 JDK1.6 都無法正常運作!下列文章是關於 JDK 的架設與環境變數設定:
安裝並設定好 JDK 後,再到 Apache Tomcat 下載 Tomcat 6.0。請注意,必須為 Tomcat 6.0, Tomcat 7.0 或 Tomcat 5.5 都無法正常運作!下列文章是關於 Tomcat 的架設與環境變數設定:
安裝並設定好 Tomcat 後,請下載 ZeroJudge 原始碼。由於該系統為台灣高師大附中的師生們所設計,且獲得 96年教育部全國校園軟體創意競賽教學應用及自由創意組第二名,因此可到全國校園軟體創意競賽網站下載:
從上述網站下載的系統環境需求為:Debain、JDK 1.5.0_22、Tomcat 6.0 。

下載並將「完整原始檔」解壓縮後,將 ZeroJudge 資料夾移至 Tomcat 的 webapps 資料夾底下:
  • mv ZeroJudge /usr/local/tomcat/webapps/
  • cd /usr/local/tomcat/webapps/ZeroJudge
請先將 ZeroJudge 內的 zerojudge.sql 匯入資料庫,可透過終端機輸入指令,亦或是透過 PhpMyAdmin 匯入:
  • mysql -u root --password=你的密碼 < zerojudge.sql
將 ZeroJudge 內 WEB-INF/lib 的所有 jar 複製到 Tomcat 的 lib:
  • cp -rp /usr/local/tomcat/webapps/ZeroJudge/WEB-INF/lib /usr/local/tomcat/
設定 Tomcat 所對應的 Port:
  • vim /usr/local/tomcat/conf/server.xml
請修改 server.xml 的 Port 並儲存:

<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="true" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>

設定 ZeroJudge 的 context.xml,讓 ZeroJudge 修改為有權限存取資料庫的帳號密碼,並確認該帳號具有存取權限:
  • vim /usr/local/tomcat/webapps/ZeroJudge/META-INF/context.xml
請修改 context.xml 的資料庫存取帳號密碼並儲存:
  • username="root"
  • password="你的密碼"
重新啟動 Tomcat 服務後,開啟瀏覽器並輸入下列網址,檢視 ZeroJudge 有無正常運作:
  • http://127.0.0.1/ZeroJudge
如果沒有出現 ZeroJudge 首頁,則先進入到 Tomcat 管理頁面檢查 ZeroJudge 啟動失敗的原因。

ZeroJudge 預設的使用者為 admin,密碼為 1234,該帳號屬於管理人群組,因此請自行註冊一名一般使用者再開始解題,只有一般使用者的解題才會列出。

帳號儲存與歷史訊息等系統相關資料,可至 MySQL 的 ZeroJudge 資料庫查閱。

參考資料:

4 則留言:

  1. 請問為什麼我裝完ZeroJudge每個功能都可以正常使用,但是就只有題目的前測都無法通過,一直出現CE,系統訊息如下

    本題目共 2 個測試點,您沒有通過任何一個測試點。(score:0)就只有
    錯誤訊息如下:

    編譯錯誤!!遭到監控程式強制中斷!
    sudo: no tty present and no askpass program specified

    請問有什麼方法可以解決?我真的很想要使用這系統,拜託幫幫忙

    回覆刪除
  2. 補充一下

    再管理頁看到的錯誤訊息是

    admin /ZeroJudge/ManageTestdata java.lang.NullPointerException 2011-06-11 23:59:38.0


    到底是什麼問題呢?

    回覆刪除
  3. CE的部份可能是題目設計時就有錯誤,起初我也遭遇過相同的問題,但當時只是胡亂設定,之後確實設計題目後,就沒發現相關的問題了。

    你也可以先自行編譯該程式是否有誤,若程式碼本身就無法通過編譯,則可能是程式碼撰寫問題了。

    回覆刪除
  4. 至於管理頁看到的錯誤訊息,我這邊也是有的。

    由於我是下載96年的版本,而該安裝手冊的內容也十分簡潔,所以我也不清楚錯誤的原因,畢竟我不是該團隊的成員,與你一樣是個有使用需求的人...

    本文的安裝流程,是我自己不斷地更換作業系統、JDK、Tomcat的版本並測試到能正常運作為止,才撰寫該流程,以備往後重新安裝時的筆記。

    我記得現行的 ZeroJudge 版本已經不是使用96年版的,而最新的版本好像也沒釋出的樣子,如有相關問題,可與 ZeroJudge 官網的管理者聯繫。

    回覆刪除