本文算是集合贴,参考了多位大神的搭建博文,现在做个总结,.主要学习自刘鑫的博文
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
第一步 在搭建好的网站上注册一个帐号
第二步 控制台输入 mysql –u root –p 回车然后输密码 进入mysql
第三步 输入 show databases;查看所有数据库
第四步 输入 use jol;(hustoj用户数据库) 进入后可以 select * from users; 查看用户表
第五步 输入insert into privilege(user_id,rightstr)values(‘root’,’administrator’);
如果你的帐号叫lalalal,那么只需要更改帐号部分替换root,
这样你的账号就有管理员权限了。。。。重点是选对数据库..而且之后需要重新打开网站,再次登录帐号.
再此提供一份数据库文件,有点大大概700+的题目够用了.优先推荐用第一个,第二个备用
第一份文件下载后解压.获得xml文件.如下图进行导入.一开始会有个大小限制
在/etc/php5/apache2 目录下vim php.ini
修改 post_max_size = 380M 和 upload_max_filesize = 300M
大概在600多行和800多行
首先安装 : sudo apt-get install phpmyadmin
将phpmyadmin与apache2建立目中连接,www目录在/var/www,phpmyadmin在/usr/share/phpmyadmin目录,
所以就用命令:sudo ln -s /usr/share/phpmyadmin /var/www/html 建立连接。【重要】
弄完之后登录OJ交题出现题目一直PENGIND的情况,如果你也出现,解决办法如下
判题程序judged需要用root帐号启动,请重启服务器或手动执行sudojudged。如果无效,请检查/home/judge/etc/judge.conf中的数据库账号配置,把其中的root密码和admin的密码改成自己设置的。
参考 Configuration ,修正后再次重启服务器或执行sudo pkill-9 judged等待一会儿再执行sudo judged
成功后重新进网站,就这样了
1.进入目录 /etc/apache2/sites-aviliable/
打开目录下的两个文件(default 什么的),把其中的 documentroot 后面加上 judgeonline
3.然后重启apache2 :终端输入
/etc/init.d/apache2 restart这样应该就 OK 了。
终端 下 ipconfig 或者 ifconfig , 找到本机 IP 地址,只要在局域网内浏览器中输入 IP ,就可以登陆 OJ
学习自 : 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 比赛平台 附多题库与问题解析