ubuntu 14|15下服务器下搭建 hustoj 比赛平台 附多题库与问题解析

本文算是集合贴,参考了多位大神的搭建博文,现在做个总结,.主要学习自刘鑫的博文

目录:

  • 1 常规搭建方法
  • 2 常见问题
    • 2.1 管理员权限
    • 2.2 题库导入(附题库下载)
    • 2.3 修改php.ini提高上传空间.
    • 2.4 phpmyadmin 可视化管理数据库
    • 2.5 总是处于判题
    • 2.6 设置apache服务器网站根路径(设置之后可通过IP访问OJ)
  • 3 配置文件

1  : 常规搭建方法

1.安装mysql

apt-get install mysql-server mysql-client

2.安装 apache2

apt-get install apache2

这里要说明一下的就是 ubuntu 下的 apache 默认网页执行文件夹在 /var/www/ 下面,配置文件在 /etc/apache2/apache2.conf ,配置文件子目录在 /etc/apache2/ 下

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

3.安装 php

apt-get install php5 libapache2-mod-php5

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

检查效果

/var/www/html/info.php

进入火狐浏览器,键入 http://localhost/info.php ,出现 php 属性页面代表安装成功

4.安装onlinejudge(ubuntu14.04 i386)亲测15的也可以

执行如下命令

sudo apt-get update

sudo apt-get install subversion

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

cd hustoj

sudo bash install-interactive.sh

如果后期出问题可以从这重安装

进入浏览器,键入http://localhost/JudgeOnline,出现JudgeOnline页面代表安装成功, 其他相关问题查看 http://code.google.com/p/hustoj/wiki/FAQ

安装pascal和java编译器

hustoj安装完默认只能判c和c++代码

sudo apt-get install fpc openjdk-6-jdk

2 经常性问题

2.1 管理员权限

第一步  在搭建好的网站上注册一个帐号

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

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

第四步  输入 use jol;(hustoj用户数据库) 进入后可以 select * from users; 查看用户表

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

如果你的帐号叫lalalal,那么只需要更改帐号部分替换root,

这样你的账号就有管理员权限了。。。。重点是选对数据库..而且之后需要重新打开网站,再次登录帐号.

2.2 题库导入

再此提供一份数据库文件,有点大大概700+的题目够用了.优先推荐用第一个,第二个备用

第一份文件下载后解压.获得xml文件.如下图进行导入.一开始会有个大小限制

2.3 修改php.ini提高上传空间.

在/etc/php5/apache2 目录下vim php.ini

修改  post_max_size = 380M   和  upload_max_filesize = 300M

大概在600多行和800多行

2.4  phpmyadmin 可视化管理数据库

首先安装 :  sudo apt-get install phpmyadmin

将phpmyadmin与apache2建立目中连接,www目录在/var/www,phpmyadmin在/usr/share/phpmyadmin目录,

所以就用命令:sudo ln -s /usr/share/phpmyadmin /var/www/html 建立连接。【重要】

2.5  总是处于判题

弄完之后登录OJ交题出现题目一直PENGIND的情况,如果你也出现,解决办法如下

判题程序judged需要用root帐号启动,请重启服务器或手动执行sudojudged。如果无效,请检查/home/judge/etc/judge.conf中的数据库账号配置,把其中的root密码和admin的密码改成自己设置的。

参考 Configuration ,修正后再次重启服务器或执行sudo pkill-9 judged等待一会儿再执行sudo judged

成功后重新进网站,就这样了

2.6 设置apache服务器网站根路径(设置之后可通过IP访问OJ)

1.进入目录 /etc/apache2/sites-aviliable/

打开目录下的两个文件(default 什么的),把其中的 documentroot 后面加上 judgeonline

3.然后重启apache2 :终端输入

/etc/init.d/apache2 restart这样应该就 OK 了。

终端 下 ipconfig 或者 ifconfig , 找到本机 IP 地址,只要在局域网内浏览器中输入 IP ,就可以登陆 OJ

3  : hustoj配置文件(改成中文与修改主题)

学习自 : http://blog.csdn.net/zhblue/article/details/7366194

/home/judge/etc/judge.conf

/var/www/html/JudgeOnline/include/db_info.inc.php

改变蓝色边框颜色:/var/www/html/JudgeOnline/template/bs/image

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

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

db_info.inc.php  /var/www/html/JudgeOnline/include/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; 是否使用在线监控,需要消耗一定的内存和计算,因此如果并发大建议关闭  
<span style="color: #ff0000;">static  $OJ_LANG="en";  默认的语言,中文为cn  
static  $OJ_SIM=true;   是否显示相似度检测的结果。  
static  $OJ_DICT=true;  是否启用在线英字典</span> 
<span style="color: #ff0000;">static  $OJ_TEMPLATE="sae"</span>  修改主题名字.主题的目录在template下
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的端口

附录:参考博文

参考

http://blog.csdn.net/chaoshenyutou/article/details/40183965

https://github.com/zhblue/hustoj

搭建oj环境:

http://blog.csdn.net/chaoshenyutou/article/details/18950909

怎样使用,安装mysql指令

http://www.cnblogs.com/zhuyp1015/p/3561470.html

配置文件

http://blog.csdn.net/zhblue/article/details/7366194

What steps will reproduce the problem? 1. Install Ubuntu 14.04 LTS (64bit) ? 1. 安装 Ubuntu 14.04 LTS (64bit) 2. Submit a C/C++ code 2. 提交 C/C++ 程序(#include <stdio.h> 然后只有 scanf 和 printf,就是最普通的那个 A+B =_= 3. Get Runtime Error:[ERROR] A Not allowed system call: runid:8674 called:89 3. 然后就 RE 了,call 号是 89,虽然我也不知道它 readdir 干嘛,但是它就是调用了。

What is the expected output? What do you see instead? Accepted ;-), but get Runtime Error:[ERROR] A Not allowed system call: runid:8674 called:89

What version of the product are you using? On what operating system? Ubuntu 14.04 LTS (64bit), gcc (Ubuntu 4.8.2-17ubuntu1) 4.8.2, HUSTOJ core lastest svn(最后的 svn 版本) Ubuntu 14.04 LTS 32bit not tested. Errors may occur =w= (32 位没有测试,不过估计可能也会有问题)

Please provide any additional information below. add 89 with HOJ_MAX_LIMIT in okcalls.h and problem solved. 然后我在 okcalls.h 里加了个 89 和 HOJ_MAX_LIMIT 就可以了。

原创文章,转载请注明: 转载自URl-team

本文链接地址: ubuntu 14|15下服务器下搭建 hustoj 比赛平台 附多题库与问题解析

  1. 解决.htaccess: Invalid command ‘RewriteEngine’,问题

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏笔记1

docker的一些命令

docker create --name myrunoob nginx:latest

6410
来自专栏小白帽学习之路

靶机实战 |『VulnHub系列』Bottleneck 1-Walkthrough

发现这个img标签的src的值有点特别,对其进行base64解码,得到图片名称bottleneck_dontbe.png

20620
来自专栏小詹同学

【Git笔记1】本地项目与GitHub远程仓库互联

秋招面试的时候,面试官就问了我:你会Git吗?我迟疑看着他,他微笑着说,入职前要抓紧时间好好学习一下。

7120
来自专栏后端进阶

搭建 RocketMQ 集群

单机模式, 即只有一个Broker, 如果Broker宕机了, 会导致RocketMQ服务不可用, 不推荐使用.

8820
来自专栏Creator星球游戏开发社区

VS Code 1.40 发布!可自行搭建 Web 版 VS Code!

今天(北京时间 2019 年 11 月 8 日),微软发布了 Visual Studio Code 1.40 版本。让我们来看看有哪些主要的更新。

10310
来自专栏渗透云笔记

Linux sudo权限提升漏洞(CVE-2019-14287)

因为需要用户拥有root权限,这也意味着用户的sudoers中的runas说明符中具有特殊值ALL

5510
来自专栏CU技术社区

Linux服务器为什么被黑?

安全是IT行业一个老生常谈的话题了,从之前的“棱镜门”事件中折射出了很多安全问题,处理好信息安全问题已变得刻不容缓。

14410
来自专栏java_python

java架构之路-(MQ专题)RocketMQ从入坑到集群详解

  这次我们来说说我们的RocketMQ的安装和参数配置,先来看一下我们RocketMQ的提出和应用场景吧。

8610
来自专栏日拱一兵

手把手使用SonarQube分析、改善项目代码质量

SonarQube是一个开源的代码质量管理系统,可用来快速定位代码中的Bug、漏洞以及不优雅的代码。它支持几乎所有的常见编程语言,例如Java、JavaScri...

9210
来自专栏用户1052078的专栏

Linux自动备份mysql数据库|mysql备份

安装教程地址:https://wiki.nooss.cn/archives/84.html

9920

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励