HUSTOJ(2019)在线判题系统的搭建

 

最新的2019踩坑搭建过程请看这里 -->  点这里

 

 

 

2018-记一次基于Ubuntu 16.04的HUSTOJ在线判题系统的搭建

关于hustoj的搭建教程 网上有很多很多 

而且开源的hustoj现在已经 几乎是 傻瓜式安装  

但是今天早上还是搞了四个多小时 还重装了一次系统才搭建好。。。。。尴尬

之所以这么久 主要是网上的教程都太老了 大部分都是2017年的 甚至还有2015年的  有些步骤完全不一样了

踩了好多坑。。。。。。整个过程嘛   主要是熟悉了一些Linux操作(其实也没熟悉多少。。。。

然后就是搭建起来了   感觉有些成就感(其实东西都是开源的。。。。胡乱一装就好了

反正就是这样  娱乐为主 搭着玩  下面记录下过程

如何安装

我这里用的是腾讯云服务器(本来准备用阿里云,但是腾讯不要钱~~),装的是Ubuntu 16.04的系统

1、打开终端 键入

sudo apt-get update

作用是升级Ubuntu软件库

(如有root身份 可以省略sudo)

2、(安装subversion)

sudo apt-get install subversion

3、然后从svn获取hustoj  键入

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

4、进入hustoj目录

cd hustoj

5、自动安装HUSTOJ系统

注意 这里 网上很多教程说输入

sudo bash install-interactive.sh

但是新版的hustoj位置已经变了   大家根据自己的系统版本去选择  我这里选的是

sudo bash install-ubuntu16+.sh

然后就可以 自己安装了 这个过程需要几分钟

6、安装过程中会让你配置数据库 如果让你写数据库名字那就写 root

数据库密码自己写一个 但是一定要记住

7、安装完OJ后,如果你是本地搭建 直接本地浏览器输入http://127.0.0.1

我这里用的是腾讯云服务器  所以直接直接输入http://公网IP 就可以访问了

8、然后进去申请一个账号用admin作为用户名注册一个用户,自动成为管理员

当然也可以申请一个普通账户  再手动添加管理权限 

下面讲一下如何添加管理权限

随便注册一个账户 后     在终端键入

mysql -u root -p -A

输入密码    进入数据库

了解一个操作:ctrl+d  退出数据库管理

进去后  查看已有的数据库列表   键入     

show databases;

注意  末尾有分号

输入后  会出现(当时忘记截图了  网上找的图)

如果出现的不是这个  请检查前面步骤

选择jol 键入

use jol;

为 root账户 添加管理员权限

insert into privilege(user_id,rightstr) values('root','administrator');

接下来就是oj的系统配置

hustoj有两个配置文件,互相独立,分别供core和web使用。

 core(judged/judge_client)使用的配置文件是judge.conf,内容如下

 注意core没有识别引号和注释的能力,所以不要自行增加任何引号或注释,否则可能影响judged启动,下面的解释仅做阅读,不能放入配置文件。

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 是否使用所有测试数据中最大的运行时间作为最后运行时间,如果不启用则以所有测试数据的总时间作为超时判断依据。
 

db_info.inc.php

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的端口

但是之前的博客讲的这两个文件的位置  现在已经完全变了  现在的位置如下

一个是  /home/judge/src/web/include   目录下的db_info.inc.php文件,

另一个是    /home/judge/etc目录下的judge.conf    文件。

我下载的版本的是在这里   大家可以到这个目录下找一下  看看在不在  )

找到了之后    用管理员权限进入方可进行操作

sudo vi var/www/JudgeOnline/include/db_info.inc.php

这里再了解一个修改操作:

vi 修改方法  vi进入文件  然后  按 i  开始修改

退出vi操作的方法

按下Esc  然后输入

:q   退出
:q!   不保存 退出
:wq   保存并退出

修改完配置后     hustoj的搭建就基本完成了。

如何修改公告

如果安装好的oj出现不能修改公告的问题

解决办法:在终端 键入

sudo chown www-data -R /home/judge/src/web

就好了

Runtime Error  运行错误解决办法

如果交题 报错Runtime Error  并且提示系统调用编号不可用

参考我的另一篇博客    https://blog.csdn.net/holly_Z_P_F/article/details/82941766

去除广告

但是我用的这个源码,里面带有广告,首页有推广图片,需要找下源码 把它改掉

在源码里的位置如下

首页的广告 是在 /home/judge/src/web/template/bs3   下面的js.php

最后补充几张搭建好的oj的图

首页

 

判题

管理界面

 

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
### 回答1: 宝塔系统是一款用于管理服务器的Web面板,而Hustoj是一款开源的在线评测系统。下面是宝塔系统安装Hustoj的指南: 1. 首先,登录到你的服务器上,并确保已经安装了宝塔系统。你可以通过访问服务器的IP地址或域名后加上宝塔系统的端口号来访问宝塔系统的面板(例如:http://yourdomain.com:8888)。 2. 登录到宝塔系统的面板后,在左侧导航栏中找到并点击“软件商店”。 3. 在软件商店页面中,搜索框中输入“hustoj”,然后点击搜索按钮。 4. 在搜索结果中找到Hustoj,并点击“安装”按钮。 5. 安装过程可能需要一些时间,请耐心等待。 6. 安装完成后,返回宝塔系统的面板首页,在左侧导航栏中找到并点击“网站”,然后点击“添加站点”。 7. 在添加站点页面中,填写相关信息,例如站点名称、域名、网站根目录等,并将PHP版本设置为与Hustoj兼容的版本(一般是PHP 7.x)。 8. 点击“提交”按钮后,宝塔系统将自动为你创建站点,并配置好相应的环境。 9. 打开浏览器,访问你设置的域名,就可以看到Hustoj的安装页面了。 10. 按照Hustoj的安装向导,填写相关信息,例如数据库信息、管理员账号密码等。 11. 安装完成后,你可以根据需要对Hustoj进行进一步配置,例如设置题库、用户管理等。 这就是宝塔系统安装Hustoj的简要指南。希望对你有帮助! ### 回答2: 宝塔系统是一款全能型的服务器管理软件,提供了简单便捷的界面操作,非常适合初学者使用。Hustoj是一款开源的在线测评系统,可以用于搭建很多类型的在线评测平台。 要在宝塔系统中安装hustoj,首先需要登录宝塔控制面板,进入软件商店,搜索并选择安装hustoj。安装过程中需要填写hustoj的一些基本配置,如数据库名称、用户名、密码等。在安装完毕后,还可进行一些进一步的配置。 安装完毕后,需要对hustoj进行一些基本的设置,如配置数据库连接、管理员账号密码等。在宝塔面板中,找到已安装的hustoj软件,点击进入,进入系统配置界面。在这里可以设置数据库连接方式、管理员账号以及其他一些常用的配置。 安装配置完成后,还需要进行一些额外的设置,如添加题目、设置比赛、调整评测机的数量等。在hustoj的安装目录下,可以找到相应的配置文件,可以通过编辑这些文件来进行额外的设置。 总之,宝塔系统的安装hustoj指南可以分为以下几个步骤:登录宝塔系统,搜索并安装hustoj,填写基本配置信息,进行进一步的配置,设置题目和比赛,调整评测机的数量等。通过这些步骤,就能够在宝塔系统中成功安装并使用hustoj了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

1900_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值