手工配置 hustoj 开源ACM OJ 平台

来源:互联网 发布:php邮箱简单正则 编辑:程序博客网 时间:2024/05/11 20:46
// Created: 2011 Nov. 9 PM
// By: SUN Shengxiang


# 一直就想搞个ACM平台,哪知道我们学校这么多年竟然没有
# 自己写又太好时机,还是先参考前辈们的伟大作品。 :-)
# 先google,无奈被墙, 只好用baidu来search Google的东东
# 看到hustoj是开源,二话不说立马向svn请求checkout
# 这个是hustoj的地址:
# http://hustoj.googlecode.com/svn/trunk/


# 主要步骤还是要参考作者写的文档 ^_^, 谁让不是我们写的呢


# 我的实验平台 ubuntu server 11.04
# 网速 2MPS


# 1. ======== 安装必备软件 ===========
sudo apt-get update
sudo apt-get upgrade


sudo apt-get install \
g++ subversion \
mysql-server \
apache2 \
php5 php5-mysql \
libapach2-mod-php5


# 2. 下载代码
HOJDIR=hustoj-read-only
cd
svn checkout http://hustoj.googlecode.com/svn/trunk/ $HOJDIR


# 不确定要不要的东东
sudo apt-get install mysql-client php5-cli php5-gd


# ========== 测试环境 ==============
# 测试线是否 apache php mysql 是否正常
# 可以 在touch 个文件 /var/www/test.php
# 文件内容 <?phpinfo();?>
# 看下apache的配置文件里有mysql.ini这一项吗,不行就 service apache2 restart
# 再不行,就sudo restart




# ========== mysql     =============
# 这个是基础,必须先搞定这个
# 修改用户名密码的命令
# mysqladmin -u root -p oldpass newpass
# 或是忘记密码了,可以修改/etc/mysql/my.cnf
# 在[mysqld]中加入一句 skip-grant-tables
# 然后 service mysql restart, 进入mysql
# update mysql.user set password=PASSWORD('123456') where user='root';
# 退出,将配置文件改回来, OK
# --
# 可以手动配置,不过别嫌麻烦
#   mysql
#       set names utf8;
#       create database jol;
#       use jol;
#       source db.sql
cd $HOJDIR/install
sudo mysql -h localhost -uroot -proot < db.sql


# ========== 安装判题机 =============
# 3. 创建用户 judge
# 代码中有 setuid(1536), 有创建用户目录, 设置uid,密码,用户所属组
# apache2的 User/Group 是 www-data(33)/33  
sudo useradd -m -u 1536 -g www-data -p 123456 judge


# 4. 然后切换用户,创建目录
sudo su - judge
cd
sudo    mkdir /home/judge
sudo    mkdir /home/judge/etc
sudo    mkdir /home/judge/data
sudo    mkdir /home/judge/log
sudo    mkdir /home/judge/run0
sudo    mkdir /home/judge/run1
sudo    mkdir /home/judge/run2
sudo    mkdir /home/judge/run3


cd $HOJDIR/install
sudo cp judge.conf java0.policy /home/judge/etc/
cd


# 编译安装, 哪里有个sim目录,不懂干什么的,还有为什么还要客户端
cd $HOJDIR/core
bash make.sh


# 设置启动
sudo echo "/usr/bin/judged" > /etc/init.d/judged
sudo chmod +x  /etc/init.d/judged
sudo ln -s /etc/init.d/judged /etc/rc3.d/S99judged # 这步不懂,请高手解释
cd




# ============== 配置Web界面 =================
# 配置文件在include/db_info.inc.php, 先修改一下


cp -R $HOJDIR/web /var/www/JudgeOnline


# 注册用户
# http://127.0.0.1/JudgeOnline/registerpage.php
# 注册一个普通帐号
# 创建管理员
#   insert into privilege(user_id,rightstr) 
#   values('zhblue','administrator');
##   zhblue 为需要加管理员权限的帐号, 管理员登录          


  
########################/home/judge/etc/judge.conf###########################
# 判题配置文件
#       OJ_HOST_NAME=localhost    #数据库地址
#        OJ_USER_NAME=jol #数据库用户名
#        OJ_PASSWORD=# 数据库密码
#        OJ_DB_NAME=jol #数据库名
#        OJ_PORT_NUMBER=3306 #数据库端口
#        OJ_RUNNING=1 #可以同时运行几个进程
#        OJ_SLEEP_TIME=1 #如果有空闲 要休眠多久
#        OJ_TOTAL=1 #总共有多少台机器负责判题
#        OJ_MOD=0 #当前机器评判取模为多少的提交
原创粉丝点击