如何搭建hustoj

注意事项:

  • 系统推荐Ubuntu14.04LTS 64位
  • 安装过程中如果提示输入数据库名字,一定要输入root!

1、使用root账户登录Ubuntu(如果没有root那么下面所有除了cd以外的操作都要加上sudo和空格)。
2、日常升级软件库:apt-get update
3、安装Subversion以便下载HustOJ源码:apt-get install subversion
4、用svn下载源码,如果出现提示就输入p回车:svn co https://github.com/zhblue/hustoj/trunk/trunk/install hustoj
5、进入hustoj目录:cd hustoj
6、开始安装:bash install-interactive.sh(如果提示填写Mysql用户名和密码,用户名记得写root,密码自己填即可)
7、如果本地安装就打开127.0.0.1/JudgeOnline或localhost/JudgeOnline,如果远程安装就打开服务器ip/JudgeOnline查看是否安装完成
8、如果安装未完成就检查上面的操作有没有出现问题,如果完成就注册个账号
9、进入mysql数据库:mysql -u root -p
10、查看所有数据库:show databases;(如果没有jol这个库说明数据库安装的时候名字不是root,这时候就只能重新安装了,而且分号别忘了输入)
11、进入hustoj数据库:use jol;
12、给账号添加管理员权限:insert into privilege(user_id,rightstr)values('你的账号','administrator');
举个例子,如果你注册的账号叫JRX2015U43,就这么写:insert into privilege(user_id,rightstr)values('JRX2015U43','administrator');
13、重新登录你的账号,看看是不是有管理员权限了?如果没有就重做第12步
至此,HustOJ已经搭建完成。


一些问题:
1、这时候的HustOJ只能评测C/C++程序,如果要评测其他语言怎么办呢?可以执行以下操作:
apt-get install fpc评测Pascal
apt-get install openjdk-6-jdk评测Java
apt-get install python -y评测Python
2、现在NOI/NOIP已经支持C++11了,但是HustOJ默认的C++版本不够,需要升级,怎么办呢?可以执行以下操作:
apt-get install gcc-4.7
apt-get install g++-4.7
3、HustOJ太丑了,我要魔改,怎么办呢?可以通过修改db_info.inc.php来达到你想要的效果,这里推荐用vim来修改:
apt-get install vim-gtk安装vim
vim /var/www/html/JudgeOnline/include/db_info.inc.php
接着会出来一坨配置文件,按Insert进入编辑模式,编辑完成之后按Esc,然后输入:wq保存并退出
这个文件是啥意思呢:看下面:

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=1008; //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=11211;  memcached的端口  

这里是部分配置文件的内容和解释,其他的东西网上没有没有研究。
4、添加评测语言
vim /home/judge/etc/judge.conf打开配置文件
找到OJ_LANG_SET并修改即可,每种语言的编号可以戳我查看。
因为这个文件是只读的,所以退出时使用`:wq!强行执行。

你可能感兴趣的:(如何搭建hustoj)