在线判题系统hustoj的搭建

Posted Code--Dream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在线判题系统hustoj的搭建相关的知识,希望对你有一定的参考价值。

摘要:ACM/ICPC程序设计竞赛,越来越受到各个高校的重视,是程序设计竞赛中的奥林匹克。Hustoj是搭建在linux系统上的判题系统。能够判断代码的正确性。会及时返回通过或者不通过,如果不通过会返回具体原因。所以这个系统很适合ACM队员在上面做一些练习。每个学校有必要有自己的OJhustoj虽说是开源,有搭建教程。但是在搭建过程中还是会有一些问题。所以针对这些问题,给出了我的解决办法。

ACM/ ICPC programming competition, more and more attention by variouscolleges and universities, is the design competition in the OlympicGames. Hustoj is built on the linux system on the problem system.Able to determine the correctness of the code. Will be returned intime or not through, if not passed will return to specific reasons.So this system is very suitable for ACM players in the above to dosome practice. Each school need to have their own OJ, hustoj althoughit is open source, there are structures tutorial. But in the processof building or there will be some problems. So for these questions,given my solution.


关键字:在线判题系统hustoj搭建OJlinux搭建OJ


引言


ACM比赛越来越受到高校重视,这是一个能够提高大学生编程能力的好平台。各个学校的ACM队员都需要在自己的OJ上刷题,做练习,还需要出题,因为出题能够很好的锻炼一个人,思维能力。如果你能出题说明你对这个知识点理解比较透彻,而不是直接敲的模板(照着代码抄上去的)。除此之外,每个高校也会不定期的举办校赛,什么的,举办校赛,很多比赛普遍用的是PC^2,对于用过PC^2的人来讲,还可以。不过这个用软件容易不小心交错文件。在线判题系统这类问题会相对比较少,其次,在线判题系统的搭建过程也比PC2简单一点。流程少,如果懂一点php还可以添加一些小功能。Hustoj是开源项目。举办比赛是没什么问题的。大型比赛也没什么问题。因为他有远程判题,多台机器进行判题任务。虽说网上博客也很多,但是实际在弄的过程也会出现很多问题。所以本文主要说说搭建hustoj过程,以及常见问题。以及简单的说说如何使用。让学校举办比赛变得容易一点。目前没找到hustoj的开发文档,这样不利于二次开发,说一说该项目结构,一边后人开发有所参考。



  1. 安装流程

1.1系统要求

该项目是运行在linux系统上的,所以必要的环境是需要一台linux电脑。对于没有linux电脑的,可以将一台windows装成ubuntu系统,具体如何装可以参考百度上面的教程,推荐使用hustoj的镜像,方便易用。装系统就不多说了,网上教程很多。随便找一个。

1.2软件环境需要

到此,假设系统已经装好了。现在需要安装一些hustoj的一些必须的软件。因为hustoj的开发者是使用php+mysql,所以这些环境是必须需要的。由于linux文件的权限比较安全,如果是新手会遇到很多问题,如果只是短期比赛,局域网的比赛那么用root账户是没什么大问题的。如果是搭建公网上面的OJ,还是建议将用户的文件权限设置好,文件的所属用户设置好,解决安全性的问题。

下面以ubuntu14.04为例,服务可以选择apache或者nginx

首先切换到root账户,如果root没有设置,请用你装系统时用的账户修改密码

sudopasswd root

根据提示修改密码后


suroot

切换到root,安装相应软件

apt-getinstall update

apt-getinstall php5.0

apt-getinstall apache2

apt-getinstall mysql-server

apt-getinstall mysql-client

apt-get-f install

我们装好了必要的软件。

1.3下载项目

github上找到hustoj下载下来。

下载地址https://github.com/zhblue/hustoj[1]

解压后或得到几个文件

                                       图1


解压后文件如图1Wiki是该项目的说明。我们需要的文件是trunk这个文件夹里面的。进入文件夹trunk会有图3这些东西。Install里面是安装的脚本,core是判题服务的代码,web是前端的文件。


1.4web配置


因为我们装的是apache,所以我们把web文件夹里面的东西放到/var/www/html/                                          

所以,我们进入删除 html目录                                   

                         2

rm-r /var/www/html/

mvweb/ /var/www/html

chown-R www-data:www-data /var/www/html/                                           

用浏览器进入看看web是否安装成功。如果如图2所示就代表前端安装成功了。

3

下面就是修改配置文件,配置文件在/var/www/html/include/db_info.inc.php

vim打开他修改它对应的信息。


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="cn";默认的语言,中文为cn

static$OJ_SIM=true;是否显示相似度检测的结果。

static$OJ_DICT=false;是否启用在线英字典

static$OJ_LANGMASK=1008;//1mC2mCPP 4mPascal 8mJava 16mRuby 32mBash 1008 for security reason tomask all other language 用掩码表示的OJ接受的提交语言,可以被比赛设定覆盖。

static$OJ_EDITE_AREA=true;//是否启用高亮语法显示的提交界面,可以在线编程,无须IDE

static$OJ_AUTO_SHARE=false;//true:自动分享代码,启用的话,做出一道题就可以在该题的Status中看其他人的答案。

static$OJ_CSS="hoj.css";默认的css,可以选择dark.cssgcode.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目录

css font-family常用的黑体宋体等字体中英文对照表

Font

常用字体

在linux上ubuntu搭建hustOJ系统

如何搭建Hustoj以及配置BlumiaOJ?

font-family 字体