您的位置:首页 > 运维架构 > Linux

linux(ubuntu)下 virtual judge 环境搭建 与配置

2014-08-06 14:55 381 查看
原文地址:http://blog.csdn.net/hopekayo/article/details/8954646



一、由于virtual judge 为件jsp项目,先进行件jsp环境的搭建:

ubuntu搭建jsp环境

1. 安装jdk

sudo apt-get install openjdk-6-jdk

2. 安装apache2

sudo apt-get install apache2

3. 安装mysql

(1) 安装

sudo apt-get install mysql-sql

(2)创建数据库和表

mysql -uroot -p

4. 安装tomcat

(1)安装

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

(2)启动tomcat

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

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

(1)下载JDBC驱动程序

www.mysql.com/downloads/中寻找connectors, 然后网页左侧有connector/J 点击会出现供选择的tar.gz和zip文件下载(下载.tar.gz文件 ),下载完毕后解压缩。

(2)配置连接文件

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

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

tomcat:/usr/local/apache-tomcat-6.0.35/lib/

6. 测试文件

(1)创建test站点

创建目录:/usr/local/apache-tomcat-6.0.35/lib/apache-tomcat-6.0.35/webapps/test

将/usr/local/apache-tomcat-6.0.35/lib/apache-tomcat-6.0.35/webapps/Root/WEB-INF目录拷贝到/usr/local/apache-tomcat-6.0.35/lib/apache-tomcat-6.0.35/webapps/test中。

(2)创建test文件

创建文件:/usr/local/apache-tomcat-6.0.35/lib/apache-tomcat-6.0.35/webapps/test/test.jsp

<%@ page contentType="text/html; charset=gb2312" import="java.util.*" %>

<%@ page import="java.sql.*"%>

<html>

<head>

<title>

jsp1

</title>

</head>

<body bgcolor="#ffffff">

<center>

<p>

<% out.print("helloworld"); %>

<%

Class.forName("com.mysql.jdbc.Driver").newInstance();

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/kpi_android_cn","root","1234");

Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

String sql = "select * from LaunchSpeed";

ResultSet rs = stmt.executeQuery(sql); %>

<% while(rs.next()){out.println(rs.getString(5)) ;}%>

<%out.print("ok");%>

</center>

</body>

</html>

7. 查看结果:

在浏览器地址栏输入:localhost:8080/test/test.jsp,查看网页是否显示对应数据库中的数据。

二、在myql中创建vhoj数据库

1、在终端中输入 sudo mysql -uroot -pyourpassword

2、创建 vhoj数据库 create database vhoj;

3 、查看是否创建成功 showdatabases;

4、选中vhoj数据库,use vhoj;

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

CREATE TABLE`t_contest`(

`C_ID` int(10)NOTNULL
auto_increment,

`C_TITLE` varchar(100)collate
utf8_unicode_cidefaultNULL,

`C_DESCRIPTION` textcollate
utf8_unicode_ci,

`C_PASSWORD` varchar(40)collate
utf8_unicode_cidefaultNULL,

`C_BEGINTIME` datetimedefaultNULL,

`C_ENDTIME` datetimedefaultNULL,

`C_MANAGER_ID` int(10)defaultNULL,

`C_HASH_CODE` varchar(40)collate
utf8_unicode_cidefaultNULL,

`C_REPLAY_STATUS_ID` int(10)
unsigned defaultNULL,

`C_ANNOUNCEMENT` textcollate
utf8_unicode_ci,

`C_ENABLE_TIME_MACHINE` int(1)
unsigned defaultNULL,

PRIMARYKEY (`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)NOTNULL
auto_increment,

`C_PROBLEM_ID` int(10)defaultNULL,

`C_CONTEST_ID` int(10)defaultNULL,

`C_NUM` varchar(2)collate
utf8_unicode_cidefaultNULL,

`C_TITLE` varchar(100)collate
utf8_unicode_cidefaultNULL,

`C_DESCRIPTION_ID` int(10)
unsigned defaultNULL,

PRIMARYKEY (`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)NOTNULL
auto_increment,

`C_DESCRIPTION` text characterset
utf8collate utf8_unicode_ci,

`C_INPUT` text characterset
utf8collate utf8_unicode_ci,

`C_OUTPUT` text characterset
utf8collate utf8_unicode_ci,

`C_SAMPLEINPUT` text characterset
utf8collate utf8_unicode_ci,

`C_SAMPLEOUTPUT` text characterset
utf8collate utf8_unicode_ci,

`C_HINT` text characterset
utf8collate utf8_unicode_ci,

`C_PROBLEM_ID` int(11)NOTNULL
default
'0',

`C_UPDATE_TIME` datetimedefaultNULL,

`C_AUTHOR` varchar(100)defaultNULL,

`C_REMARKS` varchar(500)
character set utf8collate utf8_unicode_cidefaultNULL,

`C_VOTE` int(10)
unsigned defaultNULL,

PRIMARYKEY (`C_ID`),

KEY`Index_problem_id`(`C_PROBLEM_ID`)

) ENGINE=InnoDBDEFAULT CHARSET=latin1;
CREATE TABLE`t_problem`(

`C_ID` int(10)NOTNULL
auto_increment,

`C_TITLE` varchar(100)collate
utf8_unicode_cidefaultNULL,

`C_SOURCE` varchar(500)collate
utf8_unicode_cidefaultNULL,

`C_URL` varchar(500)collate
utf8_unicode_cidefaultNULL,

`C_originOJ` varchar(40)collate
utf8_unicode_cidefaultNULL,

`C_originProb` varchar(40)collate
utf8_unicode_cidefaultNULL,

`C_MEMORYLIMIT` int(10)defaultNULL,

`C_TIMELIMIT` int(10)
unsigned defaultNULL,

`C_TRIGGER_TIME` datetimedefaultNULL,

PRIMARYKEY (`C_ID`)

) ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;
CREATE TABLE`t_replay_status`(

`C_ID` int(10)
unsigned NOTNULL auto_increment,

`C_DATA` mediumtextcollate
utf8_unicode_ci,

PRIMARYKEY (`C_ID`)

) ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;
CREATE TABLE`t_submission`(

`C_ID` int(10)NOTNULL
auto_increment,

`C_STATUS` varchar(100)collate
utf8_unicode_cidefaultNULL,

`C_TIME` int(10)
unsigned defaultNULL,

`C_MEMORY` int(10)
unsigned defaultNULL,

`C_SUBTIME` datetimedefaultNULL,

`C_PROBLEM_ID` int(10)defaultNULL,

`C_USER_ID` int(10)defaultNULL,

`C_CONTEST_ID` int(10)defaultNULL,

`C_LANGUAGE` varchar(100)
character set utf8collate utf8_bindefaultNULL,

`C_SOURCE` textcollate utf8_unicode_ci,

`C_ISOPEN` int(10)defaultNULL,

`C_DISP_LANGUAGE` varchar(100)collate
utf8_unicode_cidefaultNULL,

`C_USERNAME` varchar(40)collate
utf8_unicode_cidefaultNULL,

`C_ORIGIN_OJ` varchar(40)collate
utf8_unicode_cidefaultNULL,

`C_ORIGIN_PROB` varchar(40)collate
utf8_unicode_cidefaultNULL,

`C_IS_PRIVATE` int(10)
unsigned default'0',

`C_ADDITIONAL_INFO` textcollate
utf8_unicode_ci,

`C_REAL_RUNID` varchar(40)collate
utf8_unicode_cidefaultNULL,

PRIMARYKEY (`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)NOTNULL
auto_increment,

`C_USERNAME` varchar(40)collate
utf8_unicode_cidefaultNULL,

`C_NICKNAME` varchar(100)collate
utf8_unicode_cidefaultNULL,

`C_PASSWORD` varchar(40)collate
utf8_unicode_cidefaultNULL,

`C_CREATETIME` datetimedefaultNULL,

`C_QQ` varchar(20)collate
utf8_unicode_ciNOTNULL,

`C_SCHOOL` varchar(100)collate
utf8_unicode_ciNOTNULL,

`C_EMAIL` varchar(100)collate
utf8_unicode_ciNOTNULL,

`C_BLOG` varchar(1000)collate
utf8_unicode_ciNOTNULL,

`C_SHARE` int(10)
unsigned NOTNULLdefault'1',

`C_SUP` int(10)
unsigned NOTNULLdefault'0',

PRIMARYKEY (`C_ID`)

) ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci;
CREATE TABLE`t_vlog`(

`C_ID` int(10)
unsigned NOTNULL auto_increment,

`C_SESSIONID` varchar(40)defaultNULL,

`C_IP` varchar(40)defaultNULL,

`C_CREATETIME` datetimedefaultNULL,

`C_DURATION` int(10)
unsigned defaultNULL,

`C_REFERER` varchar(500)defaultNULL,

`C_USERAGENT` varchar(500)defaultNULL,

`C_LOGINER` int(10)
unsigned defaultNULL,

PRIMARYKEY (`C_ID`),

KEY`Index_2`(`C_SESSIONID`)

) ENGINE=InnoDBDEFAULT CHARSET=latin1;
6、查看数据表是否创建成功 show tables;
三、 代码实施

1、下载vj最新开源代码https://code.google.com/p/virtual-judge/downloads/list

2、在tomcat安装目录下的webapps目录下新建名为judge的文件夹,并将下载的文件解压到目录下。

3、修改以下配置文件

WEB-INF/db.properties、
改成本机相应的用户和密码
WEB-INF/web.properties、
本地测试注释前三行,远端访问注释后三行,并将basePath设置为http:yourid:8080/judge

4、到vj支持的oj系统注册用户

5、在WEB-INF新建accounts.conf文件,该文件存放各oj系统的账号密码
内容格式为
POJ yourusername yourpassword
ZOJ yourusername yourpassword
UVALive yourusername yourpassword
SGU yourusername yourpassword
..............................
四、Then it should work
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: