HUSTOJ 快速稳定搭建方式 需要修改的配置 常见问题解答

1. 什么是OJ(是否真的需要OJ平台)

OJ是Online Judge系统的简称,用来在线检测程序源代码的正确性。国内著名的题库有信息奥赛一本通、洛谷等。

可适用的人群有:中小型编程培训机构,初中高中编程社团。

2. 搭建环境

推荐选择腾讯云轻量级服务器(价格美丽)。云服务器控制台内选择系统镜像Ubuntu 20.04 或者Ubuntu 22.04。(星卯教育)

一键登录服务器

修改root密码

sudo passwd root
(输入root密码两次)

切换root账号

su root
(输入root密码)

安装需要root权限,安装过程快慢取决于机器配置以及网络质量,请不要中断安装过程,因为中断之后重新运行脚本会出很多不必要的BUG。

// 更换镜像
wget http://dl.hustoj.com/update-sources-ubuntu.sh
sudo bash update-sources-ubuntu.sh

// 重新进入根目录
cd /home
wget http://dl.hustoj.com/install.sh

sudo bash install.sh

耐心等待下载……

看到这个就说明安装成功了,同时 它 还把 mysql 的账号密码告诉你了。(星卯教育)

访问自己的服务器公网ip,用admin作为用户名注册一个用户,自动成为管理员。

后台功能

 

提供少量收费部署服务, 微 makytony 提供大量专业高质量的题库约4000题。

去除网站中的广告

/home/judge/src/web/template/bs3其中的js.phpjs.phpjs.php

sudo vi js.php

找到其中的

$("body").append("<div class=center > <img src='http://hustoj.com/wx.jpg' width='120px'><img src='http://hustoj.com/alipay.png' width='120px'><br> 欢迎关注微信公众号onlinejudge</div>");

修改(注释)为

/*
$("body").append("<div class=center > <img src='http://hustoj.com/wx.jpg' width='120px'><img src='http://hustoj.com/alipay.png' width='120px'><br> 欢迎关注微信公众号onlinejudge</div>");
*/

关于Vim的使用(星卯教育)

  • 按 进入编辑模式。
  • 按 Esc 进入命令模式。
  • 命令模式下按wq! 保存退出 。

删除faq广告,添加自己的faq。

进入/home/judge/src/web/template/**,修改faqs.cn.php,详见内部代码。

修改网站标题Hustoj (星卯教育)

进入/home/judge/src/web/include,修改db_info.inc.php中的$OJ_NAME

设置备案号

修改db_info.inc.php中的 $OJ_BEIAN 如:

static $OJ_BEIAN=”沪ICP备12345678号-1″;

设置默认显示中文界面

修改db_info.inc.php中的$OJ_LANG=”cn”;

添加选择填空题

添加题目时,裁判类型选择“文本裁判”

如果报 50x 错误(用户量比较大) (星卯教育)

修改 /etc/nginx/nginx.conf 中的设置:

    worker_processes 8;    #其中数字8可以取CPU核心数的整数倍。
    events {
        worker_connections 2048;
        multi_accept on;
    }
 

OJ调整数据库等相应的配置文件

vim /home/judge/src/web/include / 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=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的端口  

vim /home/judge/etc/judge.conf

OJ_HOST_NAME=127.0.0.1 如果用mysql连接读取数据库,数据库的主机地址  
OJ_USER_NAME=root 数据库帐号  
OJ_PASSWORD=root 数据库密码  
OJ_DB_NAME=jol 数据库名称  
OJ_PORT_NUMBER=3306 数据库端口  
OJ_RUNNING=4 judged会启动judge_client判题,这里规定最多同时运行几个judge_client  
OJ_SLEEP_TIME=5 judged通过轮询数据库发现新任务,轮询间隔的休息时间,单位秒  
OJ_TOTAL=1 老式并发处理中总的judged数量  
OJ_MOD=0 老式并发处理中,本judged负责处理solution_id按照TOTAL取模后余数为几的任务。  
OJ_JAVA_TIME_BONUS=2 Java等虚拟机语言获得的额外运行时间。  
OJ_JAVA_MEMORY_BONUS=512 Java等虚拟机语言获得的额外内存。  
OJ_SIM_ENABLE=0 是否使用sim进行代码相似度的检测  
OJ_HTTP_JUDGE=0 是否使用HTTP方式连接数据库,如果启用,则前面的HOST_NAME等设置忽略。  
OJ_HTTP_BASEURL=http://127.0.0.1/JudgeOnline 使用HTTP方式连接数据库的基础地址,就是OJ的首页地址。  
OJ_HTTP_USERNAME=admin 使用HTTP方式所用的用户帐号(HTTP_JUDGE权限),该帐号登录时不能启用VCODE图形验证码,但可以登录成功后启用。  
OJ_HTTP_PASSWORD=admin 密码  
OJ_OI_MODE=0 是否启用OI模式,即无论是否出错都继续判剩余的数据,在ACM比赛中一旦出错就停止运行。  
OJ_SHM_RUN=0 是否使用/dev/shm的共享内存虚拟磁盘来运行答案,如果启用能提高判题速度,但需要较多内存。  
OJ_USE_MAX_TIME=1 是否使用所有测试数据中最大的运行时间作为最后运行时间,如果不启用则以所有测试数据的总时间作为超时判断依据。 

修改常见问答内容 (星卯教育)

1、修改template/皮肤名/faqs.php

2、添加一个新闻,标题命名为faqs.cn则可以替换系统中的中文FAQ。

修改页面上的XXXX

find /home/judge/src/ -name “*.php” |xargs grep ‘你想改的内容’

就能找到你应该修改的文件, vim 进行修改保存。

授权管理员查看其它用户代码   (星卯教育)

右上角进入管理后台,用户管理,用户-权限-添加

 

权限说明:

“administrator” 管理员,除查看源码外的所有权限。

“problem_editor”:题目编辑者,添加和编辑题目。

“source_browser”:查看审核所有提交的源代码。

限制未登录用户访问和禁止注册

vim /home/judge/src/web/include /db_info.inc.php

$OJ_NEED_LOGIN 和 $OJ_REGISTER

static $OJ_REGISTER=true; //允许注册新用户
static $OJ_REG_NEED_CONFIRM=false; //新注册用户需要审核
static $OJ_NEED_LOGIN=false; //需要登录才能访问

如何重启判题机

sudo pkill -9 judged
sudo judged
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
hustoj.iso 是一个软件系统镜像文件。Hustoj是一个开源的在线评测系统,它被广泛应用于大学和高中的程序设计教学中。该系统的目标是提供一个方便使用的在线评测和训练环境,使学生能够提交他们的程序代码,并获得即时的评测结果。 hustoj.iso 是Hustoj的系统镜像文件,可以用来部署Hustoj系统。通过将hustoj.iso 文件安装到服务器上,就可以建立一个运行Hustoj系统的评测服务器。用户可以通过web界面访问该服务器,并提交自己的程序代码进行评测。 hustoj.iso 是一个基于Ubuntu操作系统的镜像文件。它集成了所有Hustoj系统所需要的软件和依赖项,并进行了预配置,使得安装和部署变得更加简单。用户只需要hustoj.iso文件写入到U盘或光盘中,然后引导服务器从U盘或光盘启动,就可以开始安装Hustoj系统了。 使用hustoj.iso 部署Hustoj系统,可以为学生提供一个良好的在线评测环境,帮助他们进行程序设计的学习和训练。学生可以在该系统中提交自己的程序代码,并获得详尽的评测结果,包括运行时间、内存消耗、错误信息等等。同时,Hustoj还具有包括代码分享、竞赛组织等其他功能,能够满足不同需求的学生。 总之,hustoj.iso 是一个用于部署Hustoj系统的镜像文件,通过安装hustoj.iso,可以搭建一个功能完善、易用的在线评测环境,为程序设计学习提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星卯教育tony

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值