这是一种将自己的电脑当作服务器来部署一个vj的方法,我也是参考前辈们的做法稍作了改动,如果在服务器上部署的话需要在细节上稍作改动:
一.什么是Virtual Judge? vj的工作原理什么? vj有什么特点?
所谓的Virtual Judge是区别于Online Judge而言的,OJ具有自己的题库、判题终端等等,但是VJ是没有的。VJ的工作原理是把题目用爬虫抓过来,当你用VJ的账号提交题目的时候VJ会用自己在对应的OJ上的账号来提交你的代码,并抓取判题结果呈现给用户。简单来说就是你只要注册一个账号就可以在各个OJ(当然要是VJ支持的)上提交题目了。
除此之外,VJ还有几个功能很棒:
创建比赛。可以用VJ支持的那些OJ上的题目来组成一场比赛(每个人度可以加比赛,这点时很棒的),很适合大家一起做套题,或者个人刷专题使用。
实时排名。你可以按VJ说明的格式来生成一个比赛的排行榜,把这个榜和你创建的比赛挂钩之后就可以在比赛过程中实时地看到其他各个队伍的AC情况以及自己的排名。有些大 型比赛的排行榜已经有人制作好了,你只需要在设置的时候直接勾选别人创建的排行榜(也就是“比赛回放”)就行了,不必再亲自制作。
二.部署环境:ubuntu12.04
三.virtual judge 本地部署方案:
去 http://code.google.com/p/virtual-judge/downloads/list下载安装包(vjudge.war)
在 http://code.google.com/p/virtual-judge/source/browse/#svn%2Ftrunk%2Fjudge%2FMySQL-config页面下载最新的数据库文件(VIR.sql)
(当然了,上面的网址是需要的,好资源都得。)
在服务器上安装tomcat,jre,jdk,mysql命令:sudo apt-get install tomcat6 openjdk-6-jre openjdk-6-jdk mysql-server-5.5 mysql-client-5.5
将安装包复制到ttop@ubuntu:/var/lib/tomcat6/webapps
重启tomcat:sudo service tomcat6 restart
修改ttop@ubuntu:/var/lib/tomcat6/webapps/vjudge/WEB-INF/目录下面的配置文件
数据库db.properties
uername=root
jdbc.password=123456(密码随意)
账户配置:account.conf
格式:oj 用户名 密码
(这里需要自己在各大oj注册的帐号)
[注]:URAL提交的时候只需要用户ID,但是由于源程序中写的是PasswordList,你需要把用户ID放在密码的位置
Codeforces源程序中提交时使用了代理,需要在服务器上放置goagent并使用tmux在后台开启,默认为127.0.0.1:8087
建立数据库并倒入刚才下载的数据库文件:
mysql -u root -p
密码:123456
create database vhoj
use vhoj
source VIR.sql
exit
重启tomcat:sudo service tomcat6 restart
自己pc在浏览器访问:http://localhost:8080/judge/,正常显示就说明配置成功了
别的pc在浏览器访问:http://你的pc的ip:8080/judge/,便可愉快刷各大oj的题目了
四.virtual judge问题解决
当无法评判时,重启tomcat:
sudo service tomcat6 restart