zoukankan      html  css  js  c++  java
  • 最新Linux系统Ubuntu16.04搭建HUSTOJ(LAMP环境)

    应该跟着下面的步骤就OK了吧!

    1.升级软件库,更新软件

    打开终端 输入

    sudo apt-get update
    
    sudo apt-get upgrade

    2.安装mysql5.7

    (注意:mysql5.7密码需要大写字母和字符,且不少于8位)

    sudo apt-get install mysql-server mysql-client

    安装的过程会有一个框,输入sql密码,按TAB切换到ok

    3.安装apache2

    sudo apt-get install apache2

    这里要说明一下的就是ubuntu下的apache默认网页执行文件夹在/var/www/下面,配置文件在/etc/apache2/apache2.conf,配置文件子目录在/etc/apache2/下
    进入浏览器,键入http://localhost,出现It works!代表安装成功.

    4.安装php7.0

    sudo apt-get install php7.0 libapache2-mod-php7.0

    重启apache,输入/etc/init.d/apache2 restart

    5.测试LAMP环境

    在终端上先输入cd /var/www/html

    再输入 sudo gedit info.php(这个文件是新增的,所以打开是空白页)

    然后就会打开,输入一下内容
    <?php phpinfo();?>

    保存然后再关闭


    然后在浏览器输入
    http://localhost/info.php
    出现php的一系列属性,LAMP环境就完成了。

    6.安装hust oj

    执行如下命令:

    sudo apt-get update 
    sudo apt-get install subversion 
    sudo svn co https://github.com/zhblue/hustoj/branches/php7/trunk/install hustoj 
    cd hustoj 
    sudo bash install-interactive.sh

    7.运行JudgeOnline

    浏览器输入http://localhost/JudgeOnline或者http://127.0.0.1/JudgeOnline即可。(截图软件:Screenshot)

    就会出现下面这个页面:

    此时hustoj已经干装完毕,当然没有帐号登录,可在http://127.0.0.1/JudgeOnline/registerpage.php 注册一个普通帐号如admin。
    此时admin为普通用户,不能对hustoj进行任何操作, 这时要将admin设置为OJ管理员,设置是在数据库里设置,因为所有信息都存储在数据库里,只更改数据库就可以了。

    打开MySQL 方式:

    mysql -u root -p

    此方式为数据库管理员权限进入,当初直接进入数据库怎么也无法将我自己的账号设置成管理员,之后才明白,只有是数据库的管理员才能将OJ的账户设置成管理员,当然在网页也可以,第一个管理员可不能在网页设置。

    进入数据库后键入

    show databases;

    (要有分号) (显示数据库)之后会出现一个已有的数据库列表。

    jol这个数据库就是OJ所用的库,要对OJ操作在这里操作便是。

    use jol;

    insert into privilege(user_id,rightstr) values('admin','administrator');


    admin 作为需要加管理员权限的帐号,此后blank可对OJ进行任何操作。

    地址:http://127.0.0.1/JudgeOnline/admin/

    注意:重新操作OJ输入以下命令就好:

    cd hustoj
    sudo bash install-interactive.sh

    8.配置文件

    hustoj有两个配置文件,互相独立,分别供core和web使用。

    core(judged/judge_client)使用的配置文件是judge.conf,默认位置/home/judge/etc,内容如下:

    【遇到了文件权限问题,输入“sudo chmod -R 777 (文件名)“即可解决】
    (注意:core没有识别引号和注释的能力,所以不要自行增加任何引号或注释,否则可能影响judged启动,下面的解释仅做阅读,不能放入配置文件。)

    OJ_HOST_NAME=127.0.0.1 如果用mysql连接读取数据库,数据库的主机地址
    OJ_USER_NAME=root 数据库帐号
    OJ_PASSWORD=root 数据库密码
    OJ_DB_NAME=jol 数据库名称
    OJ_PORT_NUMBER=3306 数据库端口
    OJ_RUNNING=4 judged会启动judge_client判题,这里规定最多同时运行几个judge_client
    OJ_SLEEP_TIME=5 judged通过轮询数据库发现新任务,轮询间隔的休息时间,单位秒
    OJ_TOTAL=1 老式并发处理中总的judged数量
    OJ_MOD=0 老式并发处理中,本judged负责处理solution_id按照TOTAL取模后余数为几的任务。
    OJ_JAVA_TIME_BONUS=2 Java等虚拟机语言获得的额外运行时间。
    OJ_JAVA_MEMORY_BONUS=512 Java等虚拟机语言获得的额外内存。
    OJ_SIM_ENABLE=0 是否使用sim进行代码相似度的检测
    OJ_HTTP_JUDGE=0 是否使用HTTP方式连接数据库,如果启用,则前面的HOST_NAME等设置忽略。
    OJ_HTTP_BASEURL=http://127.0.0.1/JudgeOnline 使用HTTP方式连接数据库的基础地址,就是OJ的首页地址。
    OJ_HTTP_USERNAME=admin 使用HTTP方式所用的用户帐号(HTTP_JUDGE权限),该帐号登录时不能启用VCODE图形验证码,但可以登录成功后启用。
    OJ_HTTP_PASSWORD=admin 密码
    OJ_OI_MODE=0 是否启用OI模式,即无论是否出错都继续判剩余的数据,在ACM比赛中一旦出错就停止运行。
    OJ_SHM_RUN=0 是否使用/dev/shm的共享内存虚拟磁盘来运行答案,如果启用能提高判题速度,但需要较多内存。
    OJ_USE_MAX_TIME=1 是否使用所有测试数据中最大的运行时间作为最后运行时间,如果不启用则以所有测试数据的总时间作为超时判断依据。
    OJ_LANG_SET=0,1,2,3,4 #判哪些语言的题目

    web使用的配置文件是db_info.inc.php,默认位置/var/www/html/JudgeOnline/include/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="cn"; 默认的语言,中文为cn
    static $OJ_SIM=true; 是否显示相似度检测的结果。
    static $OJ_DICT=false; 是否启用在线英字典
    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的端口
    static $OJ_RANK_LOCK_PERCENT=0; //比赛封榜时间的比率,如5小时比赛设为0.2则最后1小时封榜。
    static $OJ_SHOW_DIFF=false; //显示WrongAnswer时的对比

    接下来修改的配置文件是php.ini,默认位置/etc/php/7.0/apache2

    sudo gedit /etc/php/7.0/apache2/php.ini
    open_basedir =/home/judge/data:/var/www/html/JudgeOnline:/tmp 
    max_execution_time = 300 ;Maximum execution time of each script, in seconds
    max_input_time = 600
    memory_limit = 128M ;Maximum amount of memory a script may consume (16MB)
    post_max_size = 128M
    upload_tmp_dir =/tmp
    upload_max_filesize = 128M

    在这修改完之后OJ便可直接应用了。

  • 相关阅读:
    hdu 3790 最短路径问题
    hdu 2112 HDU Today
    最短路问题 以hdu1874为例
    hdu 1690 Bus System Floyd
    hdu 2066 一个人的旅行
    hdu 2680 Choose the best route
    hdu 1596 find the safest road
    hdu 1869 六度分离
    hdu 3339 In Action
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/darklights/p/7711727.html
Copyright © 2011-2022 走看看