利用新浪雲平台(SAE) 搭建 HUSTOJ 簡易教程


前言:
  OnlineJudge(OJ)是一種代碼在線判定平台,這里有許多的編程題目供你選擇,你可以選擇題目提交代碼,OJ會自動返回你的代碼的判定結果。是一種很方便的編程、算法練習平台。詳情可見:百度百科 - OJ

  自己搭建OJ往往很困難,購買服務器,域名,OJ配置…… 這些資金和技術壁壘無不讓很多有志之士望洋興嘆。現在提供一種方便、低成本的OJ搭建方法,可以親自體驗一把自己搭建OJ、加題、設置比賽、提交代碼、AC從頭到尾的搭建快感。新浪雲平台支持HUSTOJ,下面就給出本人在新浪雲上搭建HUSTOJ的簡明記錄。(HUSTOJ官方社區:https://code.google.com/p/hustoj

正文:

1、在新浪雲平台中安裝這個應用

  之前已經有人在新浪雲平台上搭建過OJ,我們可以直接搜索使用他們創建的OJ應用,省卻了很多麻煩。

  直接在新浪雲平台(http://sae.sina.com.cn)中搜索“OJ”。

  進入“HUSTOJ-SAE”應用介紹界面:http://sae.sina.com.cn/?m=apps&a=detail&aid=92

  如果你有一個新浪雲賬戶,可以直接點擊右邊安裝應用,配置一下之后這個應用就出現在你的賬戶應用列表中了。

  這個時候你就可以在瀏覽器中輸入地址:“你的二級域名.sinaapp.com”。來訪問你的OJ了!

2、管理OJ

  2.1 - 客戶端代碼管理

  當你的應用創建完成之后,新浪雲會自動給你的應用生成一個SVN倉庫(什么是SVN?),你可以通過訪問這個SVN倉庫來修改代碼管理你的OJ。訪問方式可以使用 SVN客戶端、在線訪問等方法,詳情可見,新浪雲的代碼部署說明:代碼部署手冊

  根據手冊中的提示將開源SVN客戶端 “TortoiseSVN” 下載安裝,桌面上沒有出現圖標,但是開始菜單和右鍵菜單中會出現它的標識。 

  創建一個放置OJ的文件夾,在其中右鍵單擊“SVN Checkout”,默認選項,確定,SVN客戶端會自動下載OJ的所有配置文件夾。現在你就可以在本地修改文件,修改之后記的將文件上傳到新浪雲即可。(上傳:文件上單擊右鍵中的“SVN Commit..”)

                 

  這里可以做一個用客戶端修改的例子,修改 “\include\db_info.inc.php” 文件中的 “$OJ_NAME” 變量可以修改OJ標題。

  2.2 - 在線代碼管理

  進入你的新浪雲賬戶oj應用管理界面。

      

  進入在線代碼編輯界面:

  一個例子

  打開“\include\db_info.inc.php”文件,修改 $OJ_LANG 變量的值可以修改默認的語言。

  

  db_info.inc.php文件的其它變量含義:

 1 static  $DB_HOST="localhost";  //數據庫的服務器地址
 2 static  $DB_NAME="jol";         //數據庫名
 3 static  $DB_USER="root";       //數據庫用戶名
 4 static  $DB_PASS="root";       //數據庫密碼  5         // connect db 
 6 static  $OJ_NAME="HUSTOJ";      //OJ的名字,將取代頁面標題等位置HUSTOJ字樣。
 7 static  $OJ_HOME="./";          //OJ的首頁地址
 8 static  $OJ_ADMIN="root@localhost"; //管理員email
 9 static  $OJ_DATA="/home/judge/data"; //測試數據所在目錄,實際位置。
10 static  $OJ_BBS="discuss";//"bbs" 論壇的形式,discuss為自帶的簡單論壇,bbs為外掛論壇,參考bbs.php代碼。
11 static  $OJ_ONLINE=false; //是否使用在線監控,需要消耗一定的內存和計算,因此如果並發大建議關閉
12 static  $OJ_LANG="en";  //默認的語言,中文為cn
13 static  $OJ_SIM=true;   //是否顯示相似度檢測的結果。
14 static  $OJ_DICT=true;  //是否啟用在線英字典
15 static  $OJ_LANGMASK=1008; //1mC 2mCPP 4mPascal 8mJava 16mRuby 32mBash 1008 for security reason to mask all other language 用掩碼表示的OJ接受的提交語言,可以被比賽設定覆蓋。
16 static  $OJ_EDITE_AREA=true;// 是否啟用高亮語法顯示的提交界面,可以在線編程,無須IDE。
17 static  $OJ_AUTO_SHARE=false;//true: 自動分享代碼,啟用的話,做出一道題就可以在該題的Status中看其他人的答案。
18 static  $OJ_CSS="hoj.css"; //默認的css,可以選擇dark.css和gcode.css,具有有限的界面制定效果。
19 static  $OJ_SAE=false; //是否是在新浪的雲平台運行web部分
20 static  $OJ_VCODE=true; //是否啟用圖形登錄、注冊驗證碼。
21 static  $OJ_APPENDCODE=false; //是否啟用自動添加代碼,啟用的話,提交時會參考$OJ_DATA對應目錄里是否有append.c一類的文件,有的話會把其中代碼附加到對應語言的答案之后,巧妙使用可以指定main函數而要求學生編寫main部分調用的函數。
22 static  $OJ_MEMCACHE=false;//是否使用memcache作為頁面緩存,如果不啟用則用/cache目錄
23 static  $OJ_MEMSERVER="127.0.0.1"; //memcached的服務器地址
24 static  $OJ_MEMPORT=11211;  //memcached的端口
25 static  $OJ_RANK_LOCK_PERCENT=0;  //比賽封榜時間的比率,如5小時比賽設為0.2則最后1小時封榜。
26 static  $OJ_SHOW_DIFF=false;  //顯示WrongAnswer時的對比

  詳見:https://code.google.com/p/hustoj/wiki/Configuration

 

  2.3 - WEB頁面管理

  在網頁中管理OJ需要一個admin管理員賬號,應用剛剛創建的時候一個賬號也沒有,所以需要你注冊一個,這時候注冊的ID為admin的賬號默認是管理賬號。

  * 導入題目

  在HUSTOJ的官方社區中可以找到一些免費的題目,全部打包為.xml的默認格式,你可以下載下來直接導入到你的OJ中。

  具體方法:

  1、打開你的OJ,登陸 admin 管理員賬號。

  2、點擊頁面右上角 最右方 "Admin" 按鈕進入管理界面。

  3、在左方管理列表中找到“ImportProblem”單擊,右方會出現導入頁面,選擇你下載的.xml題目文件然后單擊Import導入。

  注:你也可以將你題庫中的題目導出,同樣會打包成統一的.xml文件。支持批量導出。

  做一個例子

  1、下載免費題庫:Download:譚浩強C程序設計第三版課后題52道全

  2、按照上面步驟導入題庫。

  3、導入成功

 

另可參見右方教程,很全面:百度文庫 - 新浪雲安裝HUSTOJ教程

  

 

  未完待續

如有不妥之處,歡迎指正! 

Freecode : www.cnblogs.com/yym2013


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM