美文网首页算法笔记Linux我用 Linux
阿里云Ubuntu 14.04 LTS 搭建hustoj

阿里云Ubuntu 14.04 LTS 搭建hustoj

作者: SpiffyEight77 | 来源:发表于2018-03-30 17:17 被阅读102次
    pic

    hustoj项目简介

    华中科技大学开源的Online Judge
    github https://github.com/zhblue/hustoj

    安装流程

    1. 打开终端ssh远程连接阿里云服务器

    ssh

    2. 根据官方文档输入以下命令

       sudo apt-get update
       sudo apt-get upgrade
       wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu14.04.sh
       sudo bash install-ubuntu14.04.sh
    

    3. 等待安装

    waiting

    4.输入ip地址访问hustoj

    hustoj

    5. 后台管理

    注册admin用户自动获取后台管理权限ip/admin

    后台管理

    6. 配置文件修改

    配置文件目录
    /home/judge/etc/judge.conf
    /home/judge/src/web/include/db_info.inc.php
    /etc/php5/fpm/php.ini 或 /etc/php7.0/fpm/php.ini
    /etc/nginx/sites-enabled/default

    vim /home/judge/src/web/include/db_info.inc.php

       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防火墙误拦截。
    

    vim /home/judge/etc/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
    

    7. 数据库文件备份以及数据迁移

    需要文件
    旧数据库文件jol
    题目提交数据data
    通过ftp把文件上传到新OJ上

    mysql dump -u mysql用户名 -p jol > ~/jol.sql 把jol表导出到/底下
    

    如果你是使用本文提供的快捷方法来安装hustoj的话,中途是不会提示安装MySQL以及设置root账户和密码。

    通过命令行cat /home/judge/etc/judge.conf 可以找到权限用户以及密码

    sudo mysql -u root -p 这里的root根据你judge.conf而定,接着输入密码
    use jol
    source route/jol.sql 旧OJ的jol.sql文件路径
    

    最后把data文件夹上传覆盖即可

    8. others

    修改公告

    chown www-data -R /home/judge/src/web
    

    相关文章

      网友评论

        本文标题:阿里云Ubuntu 14.04 LTS 搭建hustoj

        本文链接:https://www.haomeiwen.com/subject/cunmcftx.html