OJ利用新浪云搭建

随笔- 298  文章- 0  评论- 27 

利用新浪云平台(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教程

  

时间: 2024-10-17 09:53:54

OJ利用新浪云搭建的相关文章

PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用基础

1.新浪微博开放平台(http://open.weibo.com/wiki/index.php/Quickstart) 开放的是什么:开放平台开放给开发者的是每一个用户的用户关系,开发者不在向传统应用那样面对单个开发者而是面对用户身后的整个好友圈.每一个API都是围绕好友与好友之间的交流来提供相关的功能,如发送微博,查看好友资料等等. 为什么要使用开放平台?开放平台可以加快应用的推广.每个用户可以影响到周围的好友,一旦应用真的优秀,用户可以方便的推荐给好友,好友又可以再推荐给他的好友.开放平台让

新浪云平台如何发布java web项目,怎么部署代码和环境、数据库?

问题描述 新浪云平台如何发布java web项目,怎么部署代码和环境.数据库? 新浪云平台如何发布java web项目,怎么部署代码和环境,需要什么权限,搭建完环境后就可以在平台上写代码了吗? 解决方案 没用过!不过阿里云在用,你就是远程连上自己配置啊!和你本地差不多的! 解决方案二: ibm云在搞免费 活动http://blog.csdn.net/evankaka/article/details/49836551 可以试试

新浪云商店:不懂技术也可以拥有属于自己的网站

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 不少同学想建立一个属于自己的独立博客,但苦于不懂技术,且购买空间和域名稍显复杂,让人望而却步,不过现在你有了一个新的选择,你无需懂技术,也不用在空间和域名上费心,它就是新浪云商店. 传统互联网公司新浪最近推出了一个新的云服务平台:新浪云商店,之前为了满足新浪微博应用开发者们的应用开发托管需求,推出了面向开发者的云服务平台Sina App Engine(简称SAE).不同于SAE的是,新浪云商店是一个专门为非技术用户设计的云平台,类似于一个自

国内高速免费主机新浪SAE搭建WordPress博客

新浪SAE是由新浪公司开发和运营的开放云计算平台的核心组成部分.SAE的目标是实现互联网应用在开发运维上的无缝整合,为App开发者提供稳定.快捷.透明.可控的服务化的平台,并且减少开发者的开发和维护成本. sae.sina.com.cn新浪SAE为广大的开发者提供免费PHP空间,一个用户可以创建10个应用,其实就可以建立10个免费网站,应用商店提供当前流行的博客网站程序,不需要修改,直接自动安装就可以免费使用了. sae.sina.com.cn新浪SAE提供的空间支持php语言,因此你可以安装大

php利用新浪接口查询ip获取地理位置

 这篇文章主要介绍了php利用新浪接口查询ip获取地理位置示例,大家参考使用吧  代码如下: <?php  function getIPLoc_sina($queryIP){     $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP;     $ch = curl_init($url);      curl_setopt($ch,CURLOPT_ENCODING ,'utf

vb6.0与sae服务器连接-VB6.0与新浪云sae服务器连接

问题描述 VB6.0与新浪云sae服务器连接 我们在新浪云sae上面建立了数据库.我想本地用vb6.0读取数据库上面的文本文件,然后本地计算,计算完毕后将结果上传到新浪云sae服务器上. 解决方案 就是调用API就行,socket或者wininet

本地数据插入新浪云数据库数据乱码

问题描述 本地数据插入新浪云数据库数据乱码 php代码都是utf-8,新浪云服务器数据格式是utf_general_ci,插入的的汉字,显示乱码,英文可以正常显示, 解决方案 http://www.oschina.net/question/1446823_2138033 解决方案二: mysql数据库插入数据中文乱码MYSQL数据库在hibernate配置数据源下插入数据乱码数据库部分数据乱码

新浪云注册的有关服务器问题

问题描述 新浪云注册的有关服务器问题 新浪云注册的服务器登录来管理网站的代码,登录的时候,所谓的安全邮箱和安全密码是什么? 解决方案 图片如下,刚才没搞上

java 往新浪云部署 一直连接不上数据库 用户名和密码都已经配置对了呀,求大神解决

问题描述 java 往新浪云部署 一直连接不上数据库 用户名和密码都已经配置对了呀,求大神解决 报错内容 Caused by: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC