[云服务器6] 使用HustOJ搭建一个在线OJ系统

前言

HustOJ 是一个开源的在线评测(OJ)系统,广泛用于教育和竞赛中。本文将详细介绍如何使用 HustOJ 搭建一个在线评测系统。

环境准备

首先,我们打开雨云,点击右上角的“登录/注册”。

为什么是雨云?
雨云有着简单易用价格实惠等特点,很适合搭建小型乃至大型的网站。

按照要求注册一个账号,优惠码记得填pyao

注册好后,我们来到主面板,选择“云服务器”,再点击“购买云服务器”。

区域:中国香港-软银大带宽[四区]

CPU:Xeon® Gold

套餐:流量叠加型-KVM 标配版(2核2G)


这样的配置,足够小班内部评测。如果是大型OJ,就要更好的配置了。

购买好后,我们打开服务器的管理面板,等待服务器创建好后,找到“远程连接”这一栏。


此时我们按下Win+R,输入cmd回车。

输入

ssh root@your_server_ip

输入密码(不会显示)回车,出现root@RainYun-XXXXXX:~#就表示连接成功了!

然后输入

apt update
apt upgrade
reboot

reboot后,连接会断开,过个3-5分钟重连就好了!

开始搭建

步骤一:安装依赖

1. 安装JDK

apt update
apt install openjdk-8-jdk

2. 安装MySQL

apt install mysql-server
mysql -u root -p

设置MySQL的root密码并创建数据库:

CREATE DATABASE hustoj;
CREATE USER 'hustoj'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON hustoj.* TO 'hustoj'@'localhost';
FLUSH PRIVILEGES;

3. 安装Tomcat

下载并解压Tomcat:

wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gz
tar -zxvf apache-tomcat-8.5.69.tar.gz
mv apache-tomcat-8.5.69 /opt/tomcat

启动Tomcat:

cd /opt/tomcat/bin
./startup.sh

步骤二:下载HustOJ

使用Git克隆HustOJ代码库:

git clone https://github.com/zhblue/hustoj.git
cd hustoj

步骤三:配置HustOJ

1. 数据库配置

在hustoj目录下,找到hustoj/oj/config.php文件,修改数据库连接信息:

$OJ_DB_HOST = "localhost";
$OJ_DB_NAME = "hustoj";
$OJ_DB_USER = "hustoj";
$OJ_DB_PASS = "your_password";

2. 编译器配置

在hustoj/oj/compile.php中配置编译器信息,确保系统能够正确调用编译器。

g++11Pascalpython3.11等。

但首先,你需要确保你安装了相应的编译器。

3. 上传文件

将HustOJ的文件上传到Tomcat的webapps目录下:

cp -r hustoj /opt/tomcat/webapps/

步骤四:初始化数据库

进入MySQL,导入HustOJ的初始数据:

mysql -u hustoj -p hustoj < hustoj/sql/hustoj.sql

步骤五:启动服务

确保Tomcat正在运行,访问以下地址查看HustOJ是否正常启动:

http://your_server_ip:8080/hustoj

步骤六:配置Nginx(可选)

如果你希望通过80端口访问OJ网站,可以使用Nginx进行反向代理。

安装Nginx:

apt install nginx

配置Nginx,编辑/etc/nginx/sites-available/default文件:

server {
    listen 80;
    server_name your_server_ip;

    location / {
        proxy_pass http://localhost:8080/hustoj;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

重启Nginx:

systemctl restart nginx

结语

至此,你已经成功搭建了一个HustOJ在线评测系统。你可以根据需要进一步配置和优化系统,加上自己的题目等。希望这篇博客能帮助到你,祝你在编程的道路上越走越远!

[点赞plz]