首先感谢阿里云的云翼计划,9.9元一个月的服务器 云翼计划
我选择的是32位ubuntu,看不到图形界面会很烦,于是我安装了一下vncserver VNC安装说明,尽管没有达到链接中图示的效果,也勉强可以用了。
hustoj安装步骤
1.安装mysql
apt-get install mysql-server mysql-client
安装的过程会有一个框,输入sql密码,按TAB切换到ok
2.安装apache2
apt-get install apache2
这里要说明一下的就是ubuntu下的apache默认网页执行文件夹在/var/www/下面,配置文件在/etc/apache2/apache2.conf,配置文件子目录在/etc/apache2/下
进入浏览器,键入http://localhost,出现It works!代表安装成功
3.安装php
apt-get install php5 libapache2-mod-php5
重启apache,输入/etc/init.d/apache2 restart
安装文本编辑器gedit
apt-get install gedit
然后打开,输入一下内容
另存为/var/www/html/info.php
然后在浏览器输入
http://localhost/info.php
出现php的一系列属性,LAMP环境就完成了。
4.安装hustoj
执行如下命令
sudo apt-get update
sudo apt-get install subversion
sudo svn co https://github.com/zhblue/hustoj/trunk/trunk/install hustoj
cd hustoj
sudo bash install-interactive.sh
这个是github上最新的源,因为google code被墙了,所以迁移到了github上。
安装完之后只能编译C和C++,有需要pascal和java可以执行这两条命令
hustoj安装完默认只能判c和c++代码
sudo apt-get install openjdk-6-jdk
sudo apt-get install fpc
5.运行JudgeOnline
输入
http://localhost/JudgeOnline
或者http://127.0.0.1/JudgeOnline即可
如果出现类似这样的问题,应该是数据库没连接上
Could not connect: Access denied for user 'root'@'localhost'(using password: YES)
数据库的配置文件在var/www/html/judgeonline/include中的db_info.inc.php
使用gedit打开修改就好,db_info.inc.php的具体分析见文章最后。
比如说我注册的帐号叫 admin
最后域名如果有可以是用自己的域名,我使用的是tk域名,dot.tk,将域名解析到云服务器上就好。
欢迎测试我搭建的hustoj,虽然是老东西了,还是能用一用,有些地方还需要更改,多谢指正。点击打开OJ
db_info.inc.php
static $DB_HOST="localhost"; 数据库的服务器地址
static $DB_NAME="jol"; 数据库名
static $DB_USER="root"; 数据库用户名
static $DB_PASS="root"; 数据库密码
// connect db
static $OJ_NAME="HUSTOJ"; OJ的名字,将取代页面标题等位置HUSTOJ字样。
static $OJ_HOME="./"; OJ的首页地址
static $OJ_ADMIN="root@localhost"; 管理员email
static $OJ_DATA="/home/judge/data"; 测试数据所在目录,实际位置。
static $OJ_BBS="discuss";//"bbs" 论坛的形式,discuss为自带的简单论坛,bbs为外挂论坛,参考bbs.php代码。
static $OJ_ONLINE=false; 是否使用在线监控,需要消耗一定的内存和计算,因此如果并发大建议关闭
static $OJ_LANG="en"; 默认的语言,中文为cn
static $OJ_SIM=true; 是否显示相似度检测的结果。
static $OJ_DICT=true; 是否启用在线英字典
static $OJ_LANGMASK=1008; //1mC 2mCPP 4mPascal 8mJava 16mRuby 32mBash 1008 for security reason to mask all other language 用掩码表示的OJ接受的提交语言,可以被比赛设定覆盖。
static $OJ_EDITE_AREA=true;// 是否启用高亮语法显示的提交界面,可以在线编程,无须IDE。
static $OJ_AUTO_SHARE=false;//true: 自动分享代码,启用的话,做出一道题就可以在该题的Status中看其他人的答案。
static $OJ_CSS="hoj.css"; 默认的css,可以选择dark.css和gcode.css,具有有限的界面制定效果。
static $OJ_SAE=false; //是否是在新浪的云平台运行web部分
static $OJ_VCODE=true; 是否启用图形登录、注册验证码。
static $OJ_APPENDCODE=false; 是否启用自动添加代码,启用的话,提交时会参考$OJ_DATA对应目录里是否有append.c一类的文件,有的话会把其中代码附加到对应语言的答案之后,巧妙使用可以指定main函数而要求学生编写main部分调用的函数。
static $OJ_MEMCACHE=false;是否使用memcache作为页面缓存,如果不启用则用/cache目录
static $OJ_MEMSERVER="127.0.0.1"; memcached的服务器地址
static $OJ_MEMPORT=11211; memcached的端口