注意事项:
- 系统推荐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!
强行执行。