最新版HUSTOJ本地及云端服务器搭建

来源:互联网 发布:数据工程理论与技术 编辑:程序博客网 时间:2024/06/05 05:30

HUSTOJ是现在使用较多的开源OJ之一,而且最近HUSTOJ也在一直改版,一直更新,最近也更新了最新版本

其实HUSTOJ搭建还是比较简单的,搭建的时候首先要明确所使用的系统,建议使用Ubuntu 14.04系统,不建议使用Ubuntu 16.04 ,更新之前使用16.04搭建O不能使用,更新之后不太清楚了,所以还是使用14.04,比较稳妥

HUSTOJ所使用的环境是Ubuntu系统,Apache服务,MySQL数据库,以及php5,所以在安装之前我们要配置好这些环境

1、如果不是root权限的话先获取root权限

   sudo -i
     然后输入密码即可

2、更新系统配置

   apt-get update

3、安装MySQL-server、mysql-client

   apt-get install mysql-server mysql-client
     这一步中途会弹出窗口,那是设定数据库密码,这个密码一定要保管好,十分重要,以后也会用到

     数据库账号默认为root

4、安装Apache2

   apt-get install apache2
     如果是本地配置的话,此时在浏览器访问localhost,查看是否有apache的服务主页

     如果是腾讯云服务器配置,直接访问公网ip即可

     如果是阿里云服务器配置,需要在阿里云控制台中,安全组配置规则加入8080端口即可,如下图

    

     显示下图,即表示Apache安装成功

    

5、安装php

   apt-get install php5 libapache2-mod-php5
      Ubuntu 14.04只支持php5,不支持php7

6、安装phpmyadmin

   apt-get install phpmyadmin
      这个软件可以直接利用网址登陆数据库

      这一步会弹出窗口,应该是输入数据库密码并设定邓旒密码,建议与数据库密码相同,免去不必要的麻烦

7、安装subversion

   apt-get install subversion
      到此所有的环境配置完成,接下来就是下载oj安装文件以及安装了

8、安装hustoj

   svn co https://github.com/zhblue/hustoj/trunk/trunk/install hustoj   cd hustoj   bash install-interactive.sh
     第一行是下载安装文件到本地hustoj文件夹下

     第二行打开文件夹

     第三行启用hustoj安装脚本,安装hustoj

     然后会让你输入数据库账号密码,账号为root,密码为安装时设定的

     接下来就是等待它安装完毕吧,大概3-10分钟,重点要看网速

    安装完成后,本地访问localhost/JudgeOnline即可看到oj主页,这时OJ配置工作基本完成,接下来就要使用oj配置文件配置适合自己的oj了

9、配置文件 db_info.inc.php

   cd /var/www/html/JudgeOnline/include   vim db_info.inc.php
     如果vim提示无法使用的话就使用下面指令安装vim,再使用

   apt-get install vim
      打开配置文件后

   static  $DB_HOST="localhost"; //服务器地址   static  $DB_NAME="jol"; //数据库名称   static  $DB_USER="root"; //数据库账号   static  $DB_PASS="********"; //数据库密码,就是之前设置的那个   //以上都不需要修改,默认就是配置好的   static  $OJ_NAME="HUSTOJ"; //OJ名称   static  $OJ_HOME="./"; //OJ主页位置   static  $OJ_ADMIN="root@localhost"; //管理员email   static  $OJ_DATA="/home/judge/data"; //OJ数据存储位置   static  $OJ_BBS="discuss3";//论坛的形式,discuss为自带的简单论坛,bbs为外挂论坛,参考bbs.php代码。   static  $OJ_ONLINE=false; //是否使用在线监控,开启比较消耗一些内存和计算,不建议开启      static  $OJ_LANG="cn"; //OJ语言,默认中文   static  $OJ_SIM=false; //是否使用OJ查重,但是单独开启这个也不行,还需要修改另一个文件下的一个代码才可以   static  $OJ_DICT=false; //是否采取在线词典   static  $OJ_LANGMASK=262064; //掩码表示的OJ接受的提交语言,可以被比赛设定覆盖。       static  $OJ_EDITE_AREA=true;//是否启用高亮语法显示的提交界面,可以在线编程,无须IDE。   static  $OJ_AUTO_SHARE=false;// 是否自动分享到AC代码   static  $OJ_CSS="white.css"; // 默认的css,可以选择dark.css和gcode.css,具有有限的界面制定效果。     static  $OJ_SAE=false; //是否是在新浪的云平台运行web部分     static  $OJ_VCODE=false; //是否开启验证码,开启后注册、登录、提交都要输入验证码才行   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的端口   static  $OJ_REDIS=false;    static  $OJ_REDISSERVER="127.0.0.1";   static  $OJ_REDISPORT=6379;   static  $OJ_REDISQNAME="hustoj";   static  $SAE_STORAGE_ROOT="http://hustoj-web.stor.sinaapp.com/";   static  $OJ_TEMPLATE="bs3"; //使用的默认模板   if(isset($_GET['tp'])) $OJ_TEMPLATE=$_GET['tp'];   static  $OJ_LOGIN_MOD="hustoj";   static  $OJ_REGISTER=true; //允许注册新用户   static  $OJ_REG_NEED_CONFIRM=true; //新注册用户需要审核   static  $OJ_RANK_LOCK_PERCENT=0; //比赛封榜时间比例   static  $OJ_SHOW_DIFF=true; //是否显示WA的对比说明   static  $OJ_TEST_RUN=false; //提交界面是否允许测试运行   static  $OJ_BLOCKLY=false; //是否启用Blockly界面   static  $OJ_ENCODE_SUBMIT=false; //是否启用base64编码提交的功能,用来回避WAF防火墙误拦截。

 10、配置文件 judge.conf

   cd /home/judge/etc   vim judge.conf
     进入配置文件

   OJ_HOST_NAME=127.0.0.1 //如果用mysql连接读取数据库,数据库的主机地址   OJ_USER_NAME=root //数据库账户名   OJ_PASSWORD=******** //数据库密码   OJ_DB_NAME=jol //数据库名称   OJ_PORT_NUMBER=3306 //数据库端口   OJ_RUNNING=2 //judged会启动judge_client判题,这里规定最多同时运行几个judge_client,不要太多,参考服务器CPU核心数量   OJ_SLEEP_TIME=1 //judged通过轮询数据库发现新任务,轮询间隔的休息时间,单位秒    OJ_TOTAL=1 //老式并发处理中总的judged数量   OJ_MOD=0 //老式并发处理中,本judged负责处理solution_id按照TOTAL取模后余数为几的任务。   OJ_JAVA_TIME_BONUS=2//ava等虚拟机语言获得的额外运行时间。    OJ_JAVA_MEMORY_BONUS=64//ava等虚拟机语言获得的额外内存。    OJ_JAVA_XMS=-Xms64M   OJ_JAVA_XMX=-Xmx128M   OJ_SIM_ENABLE=0 //是否开启代码相似度比对,开启这个并且同时开启db_info.inc.php中static  $OJ_SIM=false,才能启用OJ查重   OJ_HTTP_JUDGE=0 //是否使用HTTP方式连接数据库,如果启用,则前面的HOST_NAME等设置忽略   OJ_HTTP_BASEURL=http://127.0.0.1/JudgeOnline //使用HTTP方式连接数据库的基础地址,就是OJ的首页地址   OJ_HTTP_USERNAME=IP //使用HTTP方式所用的用户帐号(HTTP_JUDGE权限),该帐号登录时不能启用VCODE图形验证码,但可以登录成功后启用   OJ_HTTP_PASSWORD=admin //使用HTTP方式所用的用户密码   OJ_REDISENABLE=0   OJ_REDISSERVER=127.0.0.1   OJ_REDISPORT=6379   OJ_REDISAUTH=123456   OJ_REDISQNAME=hustoj   OJ_OI_MODE=1 //是否采用OI模式   OJ_SHM_RUN=1 //是否使用/dev/shm的共享内存虚拟磁盘来运行答案,如果启用能提高判题速度,但需要较多内存   OJ_USE_MAX_TIME=1 //是否使用所有测试数据中最大的运行时间作为最后运行时间,如果不启用则以所有测试数据的总时间作为超时判断依据   OJ_LANG_SET=0,1,2,3,4,5,6,7,8,9,10,11 //判题机评测语言,即C、C++、Java、Python……   OJ_COMPILE_CHROOT=1   OJ_TURBO_MODE=0
11、配置文件 000-default.conf

   cd /etc/apache2/sites-available   vim 000-default.con
    

      只需要在标注修改此行的后面加上JudgeOnline,即改行变为

   DocumentRoot /var/www/html/JudgeOnline
      重启apache服务器

   /etc/init.d/apache2/ restart

       直接访问localhost或者ip地址即可访问OJ

12、配置文件 php.ini

   cd /etc/php5/apache2/   vim php.ini      
   memory_limit = 128M //406行,内存限制
   post_max_size = 100M //673行,数据库上传限制   upload_max_filesize = 100M //805行,最大上传限制

      重启apache服务

   /etc/init.d/apache2/ restart

13、修改ico网页图标

      先在本地选择一张图片,然后修改成16*16像素的图片大小,并修改图片名及后缀名为favicon.ico

      将服务器/var/www/html/JudgeOnline/目录下的favicon.ico修改为其他名

   apt-get install lrzsz   cd /var/www/html/JudgeOnline   rz

      在对话窗口中找到要使用的图标,并选择确认上传

      上传完毕后,刷新网页还是没变,重启服务器,也不行,这是因为访问权限问题

   chown www-data favicon.ico
      使用语句修改权限就可以了

 到此,OJ的配置几乎完成,如果有想修改OJ界面的可以自行修改一下,所有文件默认都在/var/www/html/JudgeOnline/template/bs3下

以上就是个人搭建hustoj的方法,如有错误请指点

原创粉丝点击