前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ubuntu 14|15下服务器下搭建 hustoj 比赛平台 附多题库与问题解析

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

作者头像
十四君
发布2019-11-28 15:13:23
1.3K0
发布2019-11-28 15:13:23
举报
文章被收录于专栏:UrlteamUrlteam

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

目录:

  • 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文件.如下图进行导入.一开始会有个大小限制

111
111

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 比赛平台 附多题库与问题解析

Related posts:

  1. 解决.htaccess: Invalid command ‘RewriteEngine’,问题
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-05-232,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录:
  • 1  : 常规搭建方法
  • 2 经常性问题
    • 2.1 管理员权限
      • 2.2 题库导入
        • 2.3 修改php.ini提高上传空间.
          • 2.4  phpmyadmin 可视化管理数据库
            • 2.5  总是处于判题
              • 2.6 设置apache服务器网站根路径(设置之后可通过IP访问OJ)
              • 3  : hustoj配置文件(改成中文与修改主题)
                • Related posts:
                相关产品与服务
                验证码
                腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档