如何搭建Hustoj以及配置BlumiaOJ?

Posted yemaster

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何搭建Hustoj以及配置BlumiaOJ?相关的知识,希望对你有一定的参考价值。

机器系统推荐:

Ubuntu server 14.04

本机系统:

Ubuntu Gnome 16.04 amd64

  1. 登录Ubuntu(这没什么好说的)

    如果用root登录,请删去前缀sudo

  2. 安装mysql

    sudo apt-get install mysql-server mysql-client

    安装的过程中会有一个框提示输入密码,输入sql密码,然后TAB到OK

  3. 安装apache2

    sudo apt-get install apache2

    Ubuntu的apache默认网页执行文件夹在/var/www/下面,配置文件/etc/apache2/apache2.conf

    进入浏览器,输入http://localhost或http://127.0.0.1,出现It works 则代表安装成功

  4. 安装php

    14.04:sudo apt-get install php5 libapache2-mod-php5

    16.04:sudo apt-get install php7.0 libapache2-mod-php7.0 //因为16.04版本php是7.0

    重启apache,输入/etc/init.d/apache2 restart

  5. 安装文本编辑器

    sudo apt-get install gedit

    然后打开,输入以下内容:

    <?php

        phpinfo();

    ?>

    另存为/var/www/html/info.php

    然后在浏览器输入http://localhost/info.php出现php的一系列属性,lamp环境就完成了

  6. 安装hustoj

    执行如下命令

    sudo apt-get update

    sudo apt-get install subversion

    sudo svn checkout https://github.com/zhblue/hustoj/trunk/trunk/install hustoj

    cd hustoj

    sudo bash install-interactive.sh

    在安装开始时提示需要输入数据库用户名和密码,用户名写root,密码填刚才设定的就行了

  7. 安装后默认编译C和C++,如有需要可以添加以下语言(听说install-interactive.sh会自动安装apache2和php还有其他的)

    Pascal:sudo apt-get install fpc

    Java:sudo apt-get install openjdk-6-jdk

    Python:sudo apt-get python -y

  8. 运行你的Hustoj

    在浏览器里输入

    http://localhost/JudgeOnline或http://127.0.0.1/JudgeOnline

  9. 测试admin用户功能

    比如说我注册的帐号叫 admin

    第一步,终端进入 输入sudo su 输密码

    第二步  输入 mysql –u root –p 回车 然后输密码 进入mysql

    第三步 输入 show databases;查看所有数据库

    第四步,  输入 use jol;(hustoj用户数据库) 要想进去的话就输入select * from jol;

    第五步 输入 insert into privilege(user_id,rightstr)values(‘admin‘,‘administrator‘);

    如果你的帐号叫yemaster,

    那么需要更改帐号部分,如 insert into privilege(user_id,rightstr)values(‘yemaster‘,‘administrator‘);

  10. 完成!

注:

include/db_info.inc.php

static 	$DB_HOST="localhost"; //数据库地址
static 	$DB_NAME="jol"; //数据库名
static 	$DB_USER="root";//数据库用户名
static 	$DB_PASS="root";//数据库密码
static 	$OJ_NAME="HUSTOJ";//OJ名字
static 	$OJ_HOME="./";//首页地址
static 	$OJ_ADMIN="[email protected]";//管理员邮箱
static 	$OJ_DATA="/home/judge/data";//测试数据存放地址
static 	$OJ_BBS="discuss3";//discuss3是自带的论坛,bbs是自己上传在bbs目录下的论坛
static  $OJ_ONLINE=false;//是否启用在线监控
static  $OJ_LANG="cn";//默认语言,en是英文
static  $OJ_SIM=false; //是否启用相似度检验
static  $OJ_DICT=false;//是否启用英汉在线词典
static  $OJ_LANGMASK=0; //1mC 2mCPP 4mPascal 8mJava 16mRuby 32mBash 1008 for security reason to mask all other language
static  $OJ_EDITE_AREA=true;//true: syntax highlighting is active
static  $OJ_AUTO_SHARE=false;//true: One can view all AC submit if he/she has ACed it onece.
static  $OJ_CSS="white.css";//使用的css
static  $OJ_SAE=false; //using sina application engine
static  $OJ_VCODE=false;//开启验证码
static  $OJ_APPENDCODE=false;
static  $OJ_CE_PENALTY=false;
static  $OJ_MEMCACHE=false;
static  $OJ_MEMSERVER="127.0.0.1";
static  $OJ_MEMPORT=11211;
static  $OJ_REDIS=false;
static  $OJ_REDISSERVER="127.0.0.1";
static  $OJ_REDISPORT=6379;
static  $OJ_REDISQNAME="hustoj";
static  $SAE_STORAGE_ROOT="http://hustoj-web.stor.sinaapp.com/";
static  $OJ_TEMPLATE="bs3"; //使用的默认模板
if(isset($_GET[‘tp‘])) $OJ_TEMPLATE=$_GET[‘tp‘];
static  $OJ_LOGIN_MOD="hustoj";
static  $OJ_REGISTER=true; //允许注册新用户
static  $OJ_REG_NEED_CONFIRM=false; //新注册用户需要审核
static  $OJ_RANK_LOCK_PERCENT=0; //比赛封榜时间比例
static  $OJ_SHOW_DIFF=false; //是否显示WA的对比说明
static  $OJ_TEST_RUN=false; //提交界面是否允许测试运行
static  $OJ_BLOCKLY=false; //是否启用Blockly界面
static  $OJ_ENCODE_SUBMIT=false; //是否启用base64编码提交的功能,用来回避WAF防火墙误拦截。
static $OJ_OPENID_PWD = ‘8a367fe87b1e406ea8e94d7d508dcf01‘;; memcached的服务器地址  
static  $OJ_MEMPORT=11211;  memcached的端口

 11.配置BLumiaOJ

网站:在这里

下载为zip然后解压,将文件全部替换掉JudgeOnline内的内容

复制配置文件include/config.sample.php为include/config.php

<?php
// OJ信息
	$OJ_NAME = "BLumiaOJ"; // OJ的名字
	$OJ_HUSTOJ_COMPATIBLE = true; //如果您没有将数据库升级到BLumiaOJ,请将其设置为true。
	$OJ_LANGUAGE = "schinese"; // 检查语言文件夹,知道要填什么。如果你想做出贡献,请参阅https://github.com/ValveSoftware/source-sdk-2013/blob/master/sp/src/common/language.cpp国家代码字符串。
	
// 测试数据地址设置
	$OJ_PROBLEM_DATA = "/home/judge/data"; //路径到问题数据浮动。如果你使用的是SAE或OpenShift,这条路径就不会起作用。
	$OJ_UPLOAD_DATA = "/var/www/html/OnlineJudge/uploads/"; // 任何文件或图像都将在这里上传。例如(/ var / www / html / BLumiaOJ / webframe / imguploads /)
	$OJ_WWW_UPLOAD_PATH = "uploads"; //Img可以访问http://your.site/path/to/文件夹/,你应该填写[path/to/文件夹]
	
// 提交设置
	$OJ_SUBMIT_DELTATIME = 10; // 允许提交间隔时间
	$OJ_LANGMASK = 65520; //为了安全起见,我们要屏蔽所有其他语言。
	
// 页面设置
	$PAGE_ITEMS = 50;// 一页显示多少内容?
	
// 解决方案设置
	$SOLUTION_WA_INFO = true; //显示WA程序数据对比记录
	$SOLUTION_SHARE = false; // 如果Ta解决了此题,那么Ta能看其他人的代码吗?
	
// 竞赛设置
	$OJ_LOCKRANK = false; // Default Lock Ranklist Mod
	$OJ_LOCKRANK_PERCENT = 0.2; // 0~1. eg. 0.2: a 5 hours contest will lock one hour.
	$OJ_LARGE_CONTEST_MODE = false; // Enable it will disable discuss forum, private mailbox and enable login filter(see next variable).
	$OJ_LOGIN_FILTER = "BK_"; // Login filter will only allow administrator, and users who is not administrator but his/her user_id match the given prefix to login. set it to false (boolean, not string) if you wish disable login filter so that anyone registed can login, login filter is only enable if $OJ_LARGE_CONTEST_MODE is true and $OJ_LOGIN_FILTER is not set to false.
	
// 社区论坛(讨论板)设置。
	$FORUM_ENABLED = false; //目前没有完成。除非你要破解这部分,否则不要启用它。
	$FORUM_SUBMIT_DELTATIME = 180; // 允许提交频率。(秒)
	$FORUM_ENHAUNCEMENT = false; // 需要将额外的sql struct导入到数据库中。
	
// 虚拟判题设置
	$VJ_ENABLED = false; // 目前没有完成。除非你要破解这部分,否则不要启用它。
// 问题标签设置
	$PROBLEM_TAG_ENABLED = false; //需要将额外的sql struct导入到数据库中。
// 底部版权信息设置
	$FOOTER_POWERED_BY = "Powered by <a class=‘bl-footer-link‘ href=‘https://github.com/BLumia/BLumiaOJ/‘>BLumiaOJ</a>";
	$FOOTER_COPYRIGHT = "Copyright ? <a class=‘bl-footer-link‘ href=‘document.php?f=about‘>{$OJ_NAME} Maintenance Team</a>";
// 搜索引擎优化
	$OJ_ENABLE_SEO = true;
	$SEO_KEYWORD = "OJ,Online Judge,{$OJ_NAME},ACM,ICPC";
	$SEO_DESC = "{$OJ_NAME} is an online judge system for ACM/ICPC";
//运行环境和数据库设置。
/* ********************
所有支持的环境(ENV_CASE美元,又名。数据源):
“STD_MYSQL”应该设置以下连接到sql的内容。
“SAE”,新浪应用引擎(未经测试)
您应该修改setting_db.inc.的PDO语句。如果你不使用mysql。
******************** */
	$ENV_CASE = "STD_MYSQL";//环境标志,通常应该是"STD_MYSQL"
	//如果您使用的是STD_MYSQL,请填写以下信息。
	$SQL_DB_NAME = "jol";	//数据库名字
	$SQL_DB_HOST = "localhost";//数据库地址
	$SQL_DB_PORT = "3307";//数据库端口
	$SQL_DB_USER = "root";//你的数据库用户
	$SQL_DB_PASS = "root";//你的数据库密码
	
//开发人员设置
	$DEV_DISPLAY_ERRORS = false; // 显示PHP display_errors的错误消息。
?>

 

以上是关于如何搭建Hustoj以及配置BlumiaOJ?的主要内容,如果未能解决你的问题,请参考以下文章

在线判题系统hustoj的搭建

搭建hustoj

docker 搭建 hustoj

最新的hustoj搭建姿势

在linux上ubuntu搭建hustOJ系统

ubuntu 16.04安装HUSTOJ过程