利用新浪云平台(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文件的其它变量含义:
static $DB_HOST="localhost"; //数据库的服务器地址
static $DB_NAME="jol"; //数据库名
static $DB_USER="root"; //数据库用户名
static $DB_PASS="root"; //数据库密码
// connect db
static $OJ_NAME="HUSTOJ"; //OJ的名字,将取代页面标题等位置HUSTOJ字样。
static $OJ_HOME="./"; //OJ的首页地址
static $OJ_ADMIN="root@localhost"; //管理员email
static $OJ_DATA="/home/judge/data"; //测试数据所在目录,实际位置。
static $OJ_BBS="discuss";//"bbs" 论坛的形式,discuss为自带的简单论坛,bbs为外挂论坛,参考bbs.php代码。
static $OJ_ONLINE=false; //是否使用在线监控,需要消耗一定的内存和计算,因此如果并发大建议关闭
static $OJ_LANG="en"; //默认的语言,中文为cn
static $OJ_SIM=true; //是否显示相似度检测的结果。
static $OJ_DICT=true; //是否启用在线英字典
static $OJ_LANGMASK=; //1mC 2mCPP 4mPascal 8mJava 16mRuby 32mBash 1008 for security reason to mask all other language 用掩码表示的OJ接受的提交语言,可以被比赛设定覆盖。
static $OJ_EDITE_AREA=true;// 是否启用高亮语法显示的提交界面,可以在线编程,无须IDE。
static $OJ_AUTO_SHARE=false;//true: 自动分享代码,启用的话,做出一道题就可以在该题的Status中看其他人的答案。
static $OJ_CSS="hoj.css"; //默认的css,可以选择dark.css和gcode.css,具有有限的界面制定效果。
static $OJ_SAE=false; //是否是在新浪的云平台运行web部分
static $OJ_VCODE=true; //是否启用图形登录、注册验证码。
static $OJ_APPENDCODE=false; //是否启用自动添加代码,启用的话,提交时会参考$OJ_DATA对应目录里是否有append.c一类的文件,有的话会把其中代码附加到对应语言的答案之后,巧妙使用可以指定main函数而要求学生编写main部分调用的函数。
static $OJ_MEMCACHE=false;//是否使用memcache作为页面缓存,如果不启用则用/cache目录
static $OJ_MEMSERVER="127.0.0.1"; //memcached的服务器地址
static $OJ_MEMPORT=; //memcached的端口
static $OJ_RANK_LOCK_PERCENT=; //比赛封榜时间的比率,如5小时比赛设为0.2则最后1小时封榜。
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
利用新浪云平台(SAE) 搭建 HUSTOJ 简易教程的更多相关文章
- Web开发从零单排之一:在新浪云平台SAE上开发一个html5电子喜帖
需求描述: 本人大婚将至,女朋友说“现在都流行在微信上发电子请帖了,你不是技(cheng)术(xu)宅(yuan)嘛,不会连这个都搞不定吧” 本人嘴上说这等小事何足挂齿,但心里还是七上八下的,虽然自认 ...
- 使用新浪云 Java 环境搭建一个简单的微信处理后台
前一段时间,写了一篇在新浪云上搭建自己的网站的教程,通过简单构建了一个 maven 的项目,展示部署的整个流程,具体的操作可以参看这里. 新浪云服务器除了可以搭建自己的网站以外,也非常的适合作为微信公 ...
- 手把手教你用新浪云容器 Java 搭建自己的网站
经过一段时间的开发,更新,迭代,新浪云容器 Java 环境逐渐成熟起来,相比过去的 Java 运行环境,可用性和易用性都得到了大量的提升.同时也收到了不少用户反馈的使用问题,特此在这篇文章里综合介绍一 ...
- 使用新浪云(SAE)实现基于mySql和微信公众平台的关键字请求响应服务
本例是作者初次尝试微信公众平台开发之作,实现传统的关键字请求响应功能.即:用户发关键字,公众号通过关键字进行检索, 在mysql数据库中读取与关键字相关的信息,并返回给用户.本例在微信订阅号(开发者模 ...
- 01_搭建新浪云SAE
Step1:注册新浪云计算平台用新浪微博登陆新浪云计算平台,网址:http://sae.sina.com.cn/ 登陆成功之后会跳转到安全设置页面,安全设置页面要填写的东西比较多,需要注意:安全设置里 ...
- Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解
Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...
- MiinCMP1.0 SAE 新浪云版公布, 开源企业站点系统
MiinCMP是一款开源企业站点系统,除可执行于256M左右100元的国内IDC外,JUULUU聚龙软件团队最近开发了面向新浪云的版本号,该版本号可将站点免费布署到新浪云SAE上.MiinCMP採用j ...
- ThinkPHP - 2 - SAE(新浪云)部署
ThinkPHP3.2核心内置了对SAE平台的支持(采用了应用模式的方式),具有自己的独创特性,能够最大程度的使用ThinkPHP的标准特性,让开发人员感受不到SAE和普通环境的差别.甚至可以不学习任 ...
- BotVS配置托管者-基于新浪云
1. 创建SAE应用 登录新浪云平台,点击创建新应用 2. SAE环境部署 在新应用中选择自定义 相应选项如下 开发语言:自定义 运行环境:云容器 语言版本:自定义 部署方式:手工部署 操作系统:系统 ...
随机推荐
- ubuntu——主题更新,Ubuntu-tweak安装
1.首先打开终端 2.在终端中输入sudo apt-add-repository ppa:tualatrix/ppa 回车后输入密码等一会,导入密钥 3.再输入sudo apt-get update ...
- 监听OSGi服务
方法一:实现ServiceListener接口: package org.riawork.demo.web; import org.osgi.framework.BundleActivator; im ...
- Intellij IDEA 14使用maven3.3.3 问题
Intellij IDEA 14使用maven3.3.3报错: -Dmaven.multiModuleProjectDirectory system propery is not set. Check ...
- 【CI3.1】CI框架简单使用方法
CI框架简单使用方法 1.回忆MVC 1.1.M:模型,提供数据,保存数据 1.2.V:视图,只负责显示,表单form 1.3.C:控制器,协调模型和视图 1.4.action:动作,是控制器中的方法 ...
- [Asp.Net]最近一个项目的总结
引言 项目到目前告一段落,目前进入测试阶段,下周就要去部署了.虽然项目不大,但是从头到尾都是自己一个人负责,在完成编码之后,对代码进行走查,命名规范,业务逻辑,代码优化等,能负责一个项目的整个编码,非 ...
- 整理 pandas 常用函数
1. df.head(n): 显示数据前n行,不指定n,df.head则会显示所有的行 2. df.columns.values获取所有列索引的名称 3. df.column_name: 直接获取列c ...
- Spring IOC和AOP 基础
1 spring中注入资源是通过描述来实现的,在 spring 中是通过注解或者 XML 描述.spring 中IOC 注入方式有三种 1)构造方法注入 2)setter 注入 3)接口注入 1.1) ...
- java开发中国际化
1 静态文本的国际化,就是比如页面中中文显示用户名就是用户名,用于显示就是 username. 其中静态文件命名遵循:基础名_语言简称_国家简称.properties 需要使用的类是 1)import ...
- bootstrap-fileinput文件上传组件和laravel引用(未完)
前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签, ...
- php扩展swoole的安装
这个明星php安装是要装php-pear yum install php-pear 然后通过pear命名安装swoole pecl install swoole 配置php.ini 添加 extens ...