码迷,mamicode.com
首页 > 系统相关 > 详细

Ubuntu下hustoj安装的步骤

时间:2014-10-17 13:53:56      阅读:767      评论:0      收藏:0      [点我收藏+]

标签:hustoj   vitual judge   ubuntu   

 /*注 在命令前加 sudo是以管理员权限运行,如果在刚打开的终端中输入 sudo su 回车。之后的命令就不用在加sudo了,之后的全部以管理员权限运行…..

PS:直接打开文件系统是没有权限复制粘贴和更改文本内容的,可在终端中输入nautilus,这样打开文件系统就会有权限进行所有操作。

 

一.

一台装ubuntu的机器

或者

二.一台在虚拟机上安装UBUNTU的机器

三、安装mysql

进入终端(就在左边菜单栏里),首先输入 sudo su进入权限模式,让你输密码就输你安装完时设的密码,回车,


bubuko.com,布布扣

再输入apt-get installmysql-server mysql-client按回车

bubuko.com,布布扣

确认安装即可

以下安装的几个软件跟三的方法是一样的,就不一一说了,输上按回车就行。。软件园中都有!!!

安装完成之后,会让你设置数据库密码,即是后来的DBPASS,一定要记住!!!

四、安装apache2

继续输入apt-get install apache2确认安装即可

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

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

五、安装php

继续输入apt-get install php5 libapache2-mod-php5确认安装即可

重启apache,输入/etc/init.d/apache2restart

先下载一个文本编辑器gedit,方法同三.

 输入apt-get install gedit

建立新的网页,这点注意下啊,由于你无权限在系统文件夹下创建新。。,所以直接以管理员身份运行,在终端输入sudo gedit大开编辑器,

bubuko.com,布布扣

添加内容<?php phpinfo();?>保存即可,保存目录为

vi /var/www/info.php

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

bubuko.com,布布扣

七.安装onlinejudge

1.apt-get update

完成之后

2.sudo apt-get install subversion
完成之后

3.输入svn checkout http://hustoj.googlecode.com/svn/trunk/install hustoj

(需要用vpn,进外网下载),因为google服务器搬出大陆了,所以需要翻墙,想办法搞个vpn,不然没法进去下载!!!

bubuko.com,布布扣

继续输入cd hustoj,进入hustoj文件夹

接下来,要修改一个文件里面的用户名密码,是下面这个文件

hustoj/install.sh

输入sudo gedit 再次进入文本编辑器,通过它在目录中找到install.sh然后把DBPASS密码修改成设定的数据库用户名密码;

bubuko.com,布布扣

上面给的都要通过终端的方式以管理员权限修改,

 

最后一步,

输入sudo ./install.sh安装hustoj相关的支持软件(这步也需要VPN,即需要连接外网,一定要保持vpn的连接)

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

 

PS:1.svn锁定副本的问题:

你回到他的上级目录进行clear up,如果还不行,那就回到最上级的目录进行clear up

我出现的是judge-read-only的副本锁定问题,导致本应下载的内容下载不下来,我就干脆把这个文件夹删了,重新安装了一遍!

2.如果出现

Could not connect: Access denied for user ‘root‘@‘localhost‘(using password: YES)

那么打开目录:


var/www/judgeonline/include中的de.info.inc.php

把DBPASS改成数据库密码(之前设置的)

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

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

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

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

/etc/init.d/apache2 restart

这样应该就OK了。

终端ipconfig,找到本机IP地址,浏览器中输入IP,登陆OJ

九,注册帐号测试admin功能

 

来,打开OJ,注册一个账号,下面我们来为这个账号获得管理员权限

比如说我注册的帐号叫yutou

第一步,终端进入 输入sudo su 输密码

第二步  输入 mysql –u root –p 回车

然后输密码 进入mysql

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

第四步,  输入 use jol;(hustoj用户数据库) 要想进去的话就输入select * from jol;

第五步 输入

insert into privilege(user_id,rightstr)values(‘yutou‘,‘administrator‘);

如果你的帐号叫zhangkun,那么只需要更改帐号部分,如

insert into privilege(user_id,rightstr)values(‘zhangkun‘,‘administrator‘);

OK 大功告成,这样你的账号就有管理员权限了。。。。重点是选对数据库。


二.virtual judge 环境搭建 与配置

PS:以下要下载的地方也几乎都需要外网,所以一定要先准备好一个VPN帐号,具体到网上搜一下免费的VPN和设置,这里就不多赘述。

1. 安装jdk

sudo apt-get install openjdk-6-jdk

2. 安装tomcat

1)安装

 http://tomcat.apache.org/download-60.cgi页面中下载Core里的tar.gz文件;下载完解压后,将解压后的文件夹移至/usr/local中。

2)启动tomcat

在终端执行/usr/local/apache-tomcat-6.0.41/bin/startup.sh

(这里的tomcat的版本后面不一样具体自己调整比如你下的6.0.35你就把命令改成6.0.35

3.jsp中使用JDBC来连接MySQL数据库 

      下载JDBC驱动程序

打开www.mysql.com/downloads/页面,最下面有几列链接,其中一列第一个有意个download,点开,左侧寻找connectors,然后网页左侧有connector/J点击会出现供选择的tar.gzzip文件下载(下载.tar.gz文件),下载完毕后解压缩。

下载需要申请帐号,用邮箱申请就好了;

 

  

     配置连接文件

             将刚刚展开的mysql-connector-java-5.1.18中的mysql-connector-java-5.1.18-bin.jar文件拷贝到上面安装的jdktomcat下的lib文件夹中:

 

             jdk/usr/lib/jvm/java-6-openjdk/lib

       tomcat/usr/local/apache-tomcat-6.0.35/lib/PS:(这里的版本也是,你下载的5.x.xx你就把相应的5.x.xx移到相应的目录下) 

 

4.在myql中创建vhoj数据库

  先进入数据库

1、在终端中输入sudo mysql -u root -p

回车然后输入你的数据库密码

 2、创建vhoj数据库 create database vhoj

3 、查看是否创建成功showdatabases

4、选中vhoj数据库,use vhoj

5,创建表格,执行以下sql语句

 

CREATE TABLE`t_contest`(

  `C_ID` int(10)NOT NULL auto_increment,

  `C_TITLE` varchar(100)collate utf8_unicode_ci default NULL,

  `C_DESCRIPTION` textcollate utf8_unicode_ci,

  `C_PASSWORD` varchar(40)collate utf8_unicode_ci default NULL,

  `C_BEGINTIME` datetimedefault NULL,

  `C_ENDTIME` datetimedefault NULL,

  `C_MANAGER_ID` int(10)default NULL,

  `C_HASH_CODE` varchar(40)collate utf8_unicode_ci default NULL,

  `C_REPLAY_STATUS_ID` int(10) unsigneddefault NULL,

  `C_ANNOUNCEMENT` textcollate utf8_unicode_ci,

  `C_ENABLE_TIME_MACHINE` int(1) unsigneddefault NULL,

  PRIMARY KEY  (`C_ID`),

  KEY `Index_manager_id`(`C_MANAGER_ID`),

  KEY `Index_hash_code`(`C_HASH_CODE`),

  KEY `Index_replay_status_id`(`C_REPLAY_STATUS_ID`)

) ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;

 

 

CREATE TABLE`t_cproblem`(

  `C_ID` int(10)NOT NULL auto_increment,

  `C_PROBLEM_ID` int(10)default NULL,

  `C_CONTEST_ID` int(10)default NULL,

  `C_NUM` varchar(2)collate utf8_unicode_ci default NULL,

  `C_TITLE` varchar(100)collate utf8_unicode_ci default NULL,

  `C_DESCRIPTION_ID` int(10) unsigneddefault NULL,

  PRIMARY KEY  (`C_ID`),

  KEY `Index_problem_id`(`C_PROBLEM_ID`),

  KEY `Index_contest_id`(`C_CONTEST_ID`),

  KEY `Index_description_id`(`C_DESCRIPTION_ID`)

) ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;

 

 

CREATE TABLE`t_description`(

  `C_ID` int(11)NOT NULL auto_increment,

  `C_DESCRIPTION` text characterset utf8 collate utf8_unicode_ci,

  `C_INPUT` text characterset utf8 collate utf8_unicode_ci,

  `C_OUTPUT` text characterset utf8 collate utf8_unicode_ci,

  `C_SAMPLEINPUT` text characterset utf8 collate utf8_unicode_ci,

  `C_SAMPLEOUTPUT` text characterset utf8 collate utf8_unicode_ci,

  `C_HINT` text characterset utf8 collate utf8_unicode_ci,

  `C_PROBLEM_ID` int(11)NOT NULL default ‘0‘,

  `C_UPDATE_TIME` datetimedefault NULL,

  `C_AUTHOR` varchar(100)default NULL,

  `C_REMARKS` varchar(500) characterset utf8 collate utf8_unicode_cidefault NULL,

  `C_VOTE` int(10) unsigneddefault NULL,

  PRIMARY KEY  (`C_ID`),

  KEY `Index_problem_id`(`C_PROBLEM_ID`)

) ENGINE=InnoDBDEFAULT CHARSET=latin1;

 

 

CREATE TABLE`t_problem`(

  `C_ID` int(10)NOT NULL auto_increment,

  `C_TITLE` varchar(100)collate utf8_unicode_ci default NULL,

  `C_SOURCE` varchar(500)collate utf8_unicode_ci default NULL,

  `C_URL` varchar(500)collate utf8_unicode_ci default NULL,

  `C_originOJ` varchar(40)collate utf8_unicode_ci default NULL,

  `C_originProb` varchar(40)collate utf8_unicode_ci default NULL,

  `C_MEMORYLIMIT` int(10)default NULL,

  `C_TIMELIMIT` int(10) unsigneddefault NULL,

  `C_TRIGGER_TIME` datetimedefault NULL,

  PRIMARY KEY  (`C_ID`)

) ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;

 

 

CREATE TABLE`t_replay_status`(

  `C_ID` int(10) unsignedNOT NULL auto_increment,

  `C_DATA` mediumtextcollate utf8_unicode_ci,

  PRIMARY KEY  (`C_ID`)

) ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;

 

CREATE TABLE`t_submission`(

  `C_ID` int(10)NOT NULL auto_increment,

  `C_STATUS` varchar(100)collate utf8_unicode_ci default NULL,

  `C_TIME` int(10) unsigneddefault NULL,

  `C_MEMORY` int(10) unsigneddefault NULL,

  `C_SUBTIME` datetimedefault NULL,

  `C_PROBLEM_ID` int(10)default NULL,

  `C_USER_ID` int(10)default NULL,

  `C_CONTEST_ID` int(10)default NULL,

  `C_LANGUAGE` varchar(100) characterset utf8 collate utf8_bindefault NULL,

  `C_SOURCE` textcollate utf8_unicode_ci,

  `C_ISOPEN` int(10)default NULL,

  `C_DISP_LANGUAGE` varchar(100)collate utf8_unicode_ci default NULL,

  `C_USERNAME` varchar(40)collate utf8_unicode_ci default NULL,

  `C_ORIGIN_OJ` varchar(40)collate utf8_unicode_ci default NULL,

  `C_ORIGIN_PROB` varchar(40)collate utf8_unicode_ci default NULL,

  `C_IS_PRIVATE` int(10) unsigneddefault ‘0‘,

  `C_ADDITIONAL_INFO` textcollate utf8_unicode_ci,

  `C_REAL_RUNID` varchar(40)collate utf8_unicode_ci default NULL,

  PRIMARY KEY  (`C_ID`),

  KEY `Index_problem_id`(`C_PROBLEM_ID`),

  KEY `Index_user_id`(`C_USER_ID`),

  KEY `Index_contest_id`(`C_CONTEST_ID`),

  KEY `Index_username`(`C_USERNAME`),

  KEY `Index_origin_prob`(`C_ORIGIN_PROB`)

) ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;

 

CREATE TABLE`t_user` (

  `C_ID` int(10)NOT NULL auto_increment,

  `C_USERNAME` varchar(40)collate utf8_unicode_ci default NULL,

  `C_NICKNAME` varchar(100)collate utf8_unicode_ci default NULL,

  `C_PASSWORD` varchar(40)collate utf8_unicode_ci default NULL,

  `C_CREATETIME` datetimedefault NULL,

  `C_QQ` varchar(20)collate utf8_unicode_ci NOT NULL,

  `C_SCHOOL` varchar(100)collate utf8_unicode_ci NOT NULL,

  `C_EMAIL` varchar(100)collate utf8_unicode_ci NOT NULL,

  `C_BLOG` varchar(1000)collate utf8_unicode_ci NOT NULL,

  `C_SHARE` int(10) unsignedNOT NULL default ‘1‘,

  `C_SUP` int(10) unsignedNOT NULL default ‘0‘,

  PRIMARY KEY  (`C_ID`)

) ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;

 

CREATE TABLE`t_vlog` (

  `C_ID` int(10) unsignedNOT NULL auto_increment,

  `C_SESSIONID` varchar(40)default NULL,

  `C_IP` varchar(40)default NULL,

  `C_CREATETIME` datetimedefault NULL,

  `C_DURATION` int(10) unsigneddefault NULL,

  `C_REFERER` varchar(500)default NULL,

  `C_USERAGENT` varchar(500)default NULL,

  `C_LOGINER` int(10) unsigneddefault NULL,

  PRIMARY KEY  (`C_ID`),

  KEY `Index_2`(`C_SESSIONID`)

) ENGINE=InnoDBDEFAULT CHARSET=latin1;

 

 

 

然后回车。这就建好了

6、查看数据表是否创建成功 show tables;

出现相应的表就成功了。

 

三、 代码实施(下载还是要进外网,用VPN)

1、下载vj最新开源代码https://code.google.com/p/virtual-judge/downloads/list
2、在tomcat安装目录下的webapps目录下新建名为judge的文件夹,并将下载的文件解压到目录下。
3、修改以下配置文件

WEB-INF/db.properties、

修改DBPASS数据库密码(之前自己设置的)

WEB-INF/web.properties、

本地测试注释前三行,远端访问注释后三行(注释即在行前边加#号),并将basePath设置为http:yourip:8080/judge

yourip:你的ip地址,在终端中输入ipconfig,找到本机IP地址

4、在WEB-INF新建

accounts.conf文件,该文件存放各oj系统的账号密码

内容格式为

POJyourusername yourpassword

 

四、Thenit should work

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

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

 

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


下图是成功的标志。。。

bubuko.com,布布扣


Ubuntu下hustoj安装的步骤

标签:hustoj   vitual judge   ubuntu   

原文地址:http://blog.csdn.net/chaoshenyutou/article/details/40183965

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!