Ubuntu下hustoj安装的步骤

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

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

 

一.

一台装ubuntu的机器

或者

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

三、安装mysql

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

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

确认安装即可

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

安装完成之后,会让你设置数据库密码,即是后来的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大开编辑器,

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

vi /var/www/info.php

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

七.安装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,不然没法进去下载!!!

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

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

hustoj/install.sh

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

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

最后一步,

输入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.gz和zip文件下载(下载.tar.gz文件),下载完毕后解压缩。

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

   配置连接文件

将刚刚展开的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/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

下图是成功的标志。。。

时间: 2024-09-29 08:14:12

Ubuntu下hustoj安装的步骤的相关文章

Ubuntu下fossolgy安装步骤

Ubuntu下fossolgy安装步骤: 需先安装apache2(步骤略) # vi /etc/apt/sources.list deb http://fossology.org/release/2.6.2/Ubuntu/ 12.04  contrib :wq # apt-get update # apt-get install fossolgy 会自动安装apache-php5及postgresql  (记得修改postgres账号密码) 默认安装路径: /etc/fossology./usr

Ubuntu下编译安装QEMU

Ubuntu下编译安装QEMU 由于环境需求,今天在ubuntu14.04的环境下手动编译安装了QEMU2.1.2. QEMU下载地址:http://wiki.qemu-project.org/download/qemu-2.1.2.tar.bz2 具体下载及解压步骤这里就不在赘述了,主要就是说下环境准备的一些依赖包,编译QEMU最重要的就是gcc,所以我们要先把gcc安装上. [email protected]:~# apt-get install gcc-3.4 cpp-3.4 安装QEMU

ubuntu下docker安装与版本升级

ubuntu 下docker安装与版本升级 一.系统环境 系统:ubuntu-server 14.04 x86_64 内核:3.13.0-32-generic 二.Docker安装 --------------------------------------------------------------------------------- 要想安装最新版本的Docker需要使用Docker源来安装 $ sudo su - root # apt-get -y installapt-transp

ubuntu下git安装及使用

ssh目录在etc/ssh下 如何在本地使用git http://jingyan.baidu.com/album/295430f1c62c900c7e0050fd.html?picindex=1 参考:1. ubuntu下git安装及使用 http://www.cnblogs.com/jackge/archive/2013/08/17/3264801.html 2. 多 SSH Key 管理技巧与 Git 多账户登录问题 http://blog.csdn.net/forlong401/artic

Ubuntu下成功安装QQ2013

阳光小强最近用Win8系统感觉特别不爽,中午果断换了一个win7系统,又想着能不能搞个双系统(最近在看一些linux东西),于是就开始整起来.结果并不好,linux虽然整好了,但是硬盘全部格式化了,当时的心情是即喜又悲啊!倒腾了半天linux感觉蛮不错的,比较遗憾的是没有QQ,于是就就有了Ubuntu下的Linux安装.下面直接进入正题: 腾讯官方提供的Linux版本QQ: 地址:http://im.qq.com/qq/linux/download.shtml 于是阳光小强就下载了DEB包使用d

Ubuntu 下Eclipse 安装SVN

如果尚未安装Eclipse,先安装:也可以直接下载Google提供的ADT Bundle. sudo apt-get install eclipse 安装Subversion sudo apt-get install subversion 安装Subversion在Eclipse上的插件 Get the Java bindings for Subversion: sudo apt-get install libsvn-java 现在已经做好安装插件的准备. 打开Eclipse: 进入Help -

Ubuntu下手动安装Nvidia显卡驱动

1. 下载最新版的nVidia驱动. http://www.nvidia.com/page/drivers.html 2.编辑blacklist.conf. sudo gedit /etc/modprobe.d/blacklist.conf 添加以下部分并保存: blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv (这里有一行空格) 3. 删除之前所安装的nVidia驱动

snort简介以及在Ubuntu下的安装

一.简介 Snort是一套开放源代码的网络入侵预防软件与网络入侵检测软件.Snort使用了以侦测签章(signature-based)与通信协议的侦测方法.Snort是一个免费的IDS(入侵监测系统)软件.它的一些源代码是从著名的tcpdump软件发展而来的.它是一个基于libpcap包的网络监控软件,可以作为一个十分有效的网络入侵监测系统.它能够监测多种网络攻击和探测,例如:缓冲器溢出攻击,端口扫描,CGI攻击,SMB探测等等.Snort具有实时的告警能力,将告警记入一个特别的告警文件--系统

CentOS 6.5下Redis安装详细步骤

CentOS 6.5下Redis安装详细步骤 Redis简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主持. redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set –有序集合)和hash(哈希类