HUSTOJ平台的搭建

article/2025/10/22 22:52:29

HUSTOJ平台的搭建

 

  1. 首先,你要有一个服务器,本次记录的是阿里云Ubuntu18.04平台下的搭建

  2. 搭建LAMP环境(LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。)

    1. 键入
      sudo apt-get update && sudo apt-get upgrade

       

    2. 整合安装Mysql、PHP、Apache(单独安装?多次实验发现端口冲突问题,建议直接跳到步骤3)
      sudo apt-get install apache2 php-mysql libapache2-mod-php mysql-server
    3. 安装后重启apache
      sudo service apache2 restart

       

    4. 在浏览器中输入你的 IP地址就可以访问到如下页面(如果是用ESC的,没有反应,查看https://blog.csdn.net/qq_41661918/article/details/88051777)

    5. 实现输出phpinfo网页,键入 
      vi /var/www/html/phpinfo.php
      <?php   echo phpinfo();
      ?>

       

    6. 保存并退出, 在浏览器中输入 http://localhost/phpinfo.php (localhost 位置填你的ip地址或者域名) ,你会进入如下界面
  3. 安装HUSTOJ

    1. HUSJOJ的Github网址:https://github.com/zhblue/hustoj,可以自行根据平台选择;以下为Ubuntu18.04安装方式

    2. 基于 Ubuntu 18.04 通过 Gitee 安装 

      wget https://gitee.com/zhblue/hustoj/raw/master/trunk/install/install-ubuntu18-gitee.shsudo bash install-ubuntu18-gitee.sh

       

    3. 将自动安装完毕,详见上述网址

  4. 管理数据库

    1. 进入数据库,初次无密码直接回车(可自行设置)

      mysql -u root -p

       

    2. 数据库操作

      show databases; --查看数据库 
      use jol; --进入jol数据库  
      insert into privilege(user_id,rightstr) values('admin','administrator');
      --表示创建管理员账号admin,对应于注册时的学号
      --administrator代表管理员权限,这里最好不要修改

       

  5. 配置oj 

    1. cd查看目录下的db_info.inc.php文件  可以更改网页内容(如果不更改你可以直接跳过)

      cd /home/judge/src/web/include | ls

       

    2. 目录下的  judge.conf文件  这也是一些相关配置 可以跳过

      cd /home/judge/etc | ls

       

  6. oj优化(待试验,可直接跳过)

    1. 修改公告

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

       

    2. 去除广告(在第34行左右)  

      sudo vi /home/judge/src/web/template/bs3/js.php
      //在进行了下面的 mv 操作后上面地址将变为 /var/www/html/web/template/bs3/js.php

       

  7. 将web文件夹内容放入文件夹 /var/www/html 中(最重要)

    1. 将web中的文件放入apache网站显示文件夹中

      sudo mv /home/judge/src/web/ /var/www/html/

       

    2. 重启apache2 

      sudo service apache2 restart

       

    3. 在浏览器中输入 http://你的ip/web,将显示

  8. 添加OJ管理权限

    1. 在上述网站注册一个账户,账户学号应为之前步骤[4.2]admin处设置的用户名(学号,数据库通过唯一学号来判断用户)。官方文档:安装完成,用“admin”作为用户名注册一个用户,自动成为管理员。

    2. 此时管理员权限立即生效,个人账号出现“管理”选项

    3. 若无效,可在终端mysql的jol表下键入如下指令赋予某用户权限 

      mysql -u root -p --输入密码,回车
      use jol;
      insert into privilege(user_id,rightstr)values('admin','administrator');
      --admin表示你要赋予权限的账号--administrator处为你要赋予的权限类型名,权限类型如下
  9. 基本搭建到这里就大功告成啦~

  10. 官方提供的基本使用视频:→🌐

  11. 在重启系统之后可能会出现端口冲突问题,导致apache服务启动异常,可以执行如下指令尝试解决

    netstat -tln | grep 80  //查看80端口使用情况
    sudo lsof -i:80  //查看监听80端口进程
    kill -9 80端口PID //结束此时root80端口进程,启动阿帕奇服务即可
    service apache2 status   //查看阿帕奇服务状态
    service apache2 stop     //停止阿帕奇服务
    service apache2 start    //启动阿帕奇服务
    service apache2 restart  //重启阿帕奇服务

     

OJ细节补充中......🛫

 


http://chatgpt.dhexx.cn/article/S2PATost.shtml

相关文章

搭建学校oj平台-创建项目

创建项目 创建git 在gitee创建仓库 同步本地 云端本地成功 创建数据库&#xff08;学习mysql常用操作&#xff09; 连接用户名为root创建OJ数据库create database OJ;使用数据库OJuse OJ 创建后端项目 使用idea创建SpringBoot项目 选择Spring Initialize 创建项目 选择版…

OJ平台代码模板自动生成

文章目录 前言一、分析数据二、解析输入读取一个整数读取多行整数读取一行中的多个整数 三、解析输出打印一个整数打印一个整数数组 四、完整模板总结 前言 经常使用CSDN的小伙伴应该知道, 最近CSDN举办了好几期编程竞赛, 其中的编程模板, 都是有python脚本自动生成的, 这篇文…

OJ平台输入输出注意事项

文章目录 输入输出多组数据的处理输入不给你说有几组输入给你说输入几组不给你说有几组输入&#xff0c;但是会有一个特殊输入作为结束标志。 输出两组数据之间没有空行两组数据之间存在空行输出之间有空行 输入输出 多组数据的处理 由于ACM竞赛题目的输入数据和输出数据一般…

C++/Linux实战项目 - 负载均衡式在线OJ平台

目录 总览 简述 项目核心的三个模块 项目宏观结构 compile_server 编译与运行服务 总览分析 compiler.hpp runner.hpp compile_run.hpp compile_server.cc oj_server 基于MVC结构的oj服务设计 总览分析 Model 提供对数据的操作方法 View 使用后端数据对前端页面进…

OJ平台架构/用户权限验证/JAVA后端开发

转载自: 我的个人博客 OJ实验平台&#xff0c;采用沙箱后端运行代码&#xff0c;实现安全的实时评测&#xff08;OJ&#xff09;。此平台搭建的初衷为学校的数据结构实验提供课程代码的编写和测评&#xff0c;以此方便学生实验时得到实时的反馈&#xff0c;此后陆续被多个实验…

sql中检查时间是否重叠

先画一个时间轴&#xff0c;方便理解。 设新的时间块&#xff0c;开始时间为start&#xff0c;结束时间为end。数据库中的数据为item 这样可以直观的看出来&#xff0c;新的时间块插入进来&#xff0c;只需要判断 start<item.end and end > item.start 即可 当然上…

JS判断多个时间段是否有重叠(时分)

多个时间段比较 let dateAr [{ s: 01:00, e: 14:08 },{ s: 01:04, e: 02:05 },{ s: 05:21, e: 08:00 },{ s: 10:20, e: 12:08 }, ] function Fn() {for (let k in dateAr) {if (!judege(k)) {return false}}return true } function judege(idx) {for (let k in dateAr) {if (…

合并所有重叠的区间

Python-合并区间 题目 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 示例 1: 输入&#xff1a;interva…

关于sql语句中,统计时间重叠和时间不重叠

关于sql统计时间重叠和时间不重叠的问题 我们在开发过程中总会遇到这样的情况&#xff0c;一行数据中&#xff0c;有id、组、开始时间、结束时间。但是开始时间和结束时间肯定会出现时间重叠问题&#xff0c;比如说下面这种情况。 我们先找出时间重叠的公式&#xff1a; 可以发…

开始时间与结束时间重叠

let endNum ; //整个二维数组for(let itemName of showDate) {//for (let i 0; i < itemName.children.length; i) {if(itemName.screenId itemName.children[i].screenId) {// console.log(itemName.children[i])//把开始时间和结束时间转化成时间戳if(parseInt(itemNam…

在SQL Server中合并重叠日期

1.合并SQL中的时间重叠的记录方法:A --创建临时表&#xff0c;里面有重叠的日期declare t table (Name varchar(100), starttime datetime, endtime datetime); insert into t values(A , 2017-01-02 00:00 , 2017-03-28 00:10),(A , 2017-05-14 23:50 , 2017-05-29 23…

Java判断多个时间段是否重叠

因为项目需求用到比较给定时间段是否与已知时间段有重叠&#xff0c;所以写了一个比较简单易懂的方法&#xff0c;经测试可以满足本人目前的需求&#xff0c;大家如果发现该方法有什么问题可以提出来&#xff0c;如果有更好的方法也可以分享。 package com.demo;import java.u…

SQL中如何求解时间重叠的问题?

点击上方SQL数据库开发&#xff0c;关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 问题描述 时间重叠指上下两行数据的时间段有重叠部分&#xff0c;现在要找出这些在时间上有重叠的记录。 具体问题 有7个会议室&#xff0c;每个会议室每天都有人开…

多个日期时间段进行合并计算时长,剔除重叠时间段

多个日期时间段进行合并&#xff0c;算出经历的时长_itrytellyou的博客-CSDN博客_多个时间段合并多个日期时间段进行合并&#xff0c;算出经历的时长背景描述思路代码背景描述在公司进行人员描图模块开发时&#xff0c;涉及到了人员参会时长和参会次数的数据&#xff0c;比如一…

【js】判断时间段之间是否有重叠

一、需求 可以有多个时间段&#xff08;hh:mm&#xff09;&#xff0c;添加下一个时间段以及提交时需要判断各个时间段不能交叉&#xff0c;如下图&#xff1a; 一、方法 let dateAr [{ s: 02:00, e: 03:00 },{ s: 03:00, e: 04:01 },{ s: 05:00, e: 06:00 },{ s: 07:00, e:…

SQL中的时间重叠问题

点击关注上方“SQL数据库开发”&#xff0c; 设为“置顶或星标”&#xff0c;第一时间送达干货 SQL专栏 SQL基础知识第二版SQL高级知识第二版 问题描述 时间重叠指上下两行数据的时间段有重叠部分&#xff0c;现在要找出这些在时间上有重叠的记录。 具体问题 有7个会议室&#…

判断两个时间段交集、时间重叠问题

判断两个时间段范围是否有交集(时间重叠)问题经常遇到&#xff0c;比如预约会议室开会&#xff0c;活动的开始结束等&#xff0c;本文做此分析。 前提&#xff1a;本文时间传参已做限制&#xff0c;结束时间必须大于开始时间 1、正向思维 代码如下 (oneStartTime < other…

判断时间范围是否重叠(原理)

首先问题来源&#xff1a;因为业务需求需要在前端设置一个时间范围&#xff0c;并且可以多次增加&#xff0c;但要保证时间范围不重叠。某一个时间范围内做特定的事情。 让我们来分析一下时间重叠有几种情况 第一种情况&#xff1a;R1的开始时间在R2时间范围内 图① 第二种情…

企业物联网平台如何选择?

物联网平台的考虑因素都有哪些&#xff1f; 通常&#xff0c;物联网平台在安全功能、协议、数据格式、数据分析和可视化能力&#xff0c;以及所提供的应用环境方面进行比较。有很多物联网平台&#xff0c;它们可能拥有全套功能&#xff0c;但可能仍然无法胜任客户任务需求。一…

物联网技术,主要包括哪些核心技术

物联网的关键技术有识别和感知技术&#xff0c;网络与通信技术&#xff0c;数据挖掘与融合技术。 1.识别和感知技术 最常见的就是生活的的二维码了。 通过二维码&#xff0c;我们可以和图片&#xff0c;网址&#xff0c;软件&#xff0c;整个世界联系起来。 2.网络与通信技…