如何在 GitHub 上搭建 HustOJ 系统

在当今编程学习和比赛的环境中,搭建一个在线评测系统(Online Judge,简称 OJ)变得尤为重要。HustOJ 是一个开源的 OJ 系统,适合用于 ACM 比赛和各种编程练习。本文将详细介绍如何在 GitHub 上搭建 HustOJ 系统,确保您能顺利完成这个过程。

1. HustOJ 简介

HustOJ 是一个基于 PHP 的在线评测系统,支持多种编程语言。其主要功能包括:

  • 提交代码并进行评测
  • 支持多种题目类型
  • 提供详细的评分报告
  • 方便的用户管理功能

2. 准备工作

在搭建 HustOJ 系统之前,需要准备以下环境:

  • 一台 VPS 或本地服务器
  • 安装了 LAMP(Linux, Apache, MySQL, PHP)环境
  • Git 工具

2.1 安装 LAMP 环境

在 Ubuntu 系统中,可以使用以下命令安装 LAMP 环境: bash sudo apt update sudo apt install apache2 mysql-server php php-mysql libapache2-mod-php

2.2 安装 Git 工具

Git 是版本控制工具,使用下面的命令来安装: bash sudo apt install git

3. 从 GitHub 获取 HustOJ 代码

HustOJ 的代码托管在 GitHub 上,使用以下命令克隆代码: bash git clone https://github.com/zhblue/hustoj.git

3.1 克隆代码后操作

进入 HustOJ 目录并修改配置文件: bash cd hustoj cp config.inc.php.sample config.inc.php

4. 配置数据库

在 MySQL 中创建一个数据库,并设置相关权限。使用以下命令登录 MySQL: bash mysql -u root -p

4.1 创建数据库

在 MySQL 中执行以下命令创建数据库: sql CREATE DATABASE hustoj; GRANT ALL PRIVILEGES ON hustoj.* TO ‘your_username’@’localhost’ IDENTIFIED BY ‘your_password’; FLUSH PRIVILEGES;

5. 配置 HustOJ

根据你的数据库信息编辑 config.inc.php 文件: php $OJ_NAME = ‘HustOJ’; $OJ_DB_HOST = ‘localhost’; $OJ_DB_NAME = ‘hustoj’; $OJ_DB_USER = ‘your_username’; $OJ_DB_PASS = ‘your_password’;

6. 导入数据库表结构

hustoj 目录下,有一个名为 db.sql 的文件,用来初始化数据库。在 MySQL 中执行: bash mysql -u your_username -p hustoj < db.sql

7. 启动 Apache 服务器

使用以下命令启动 Apache 服务器: bash sudo systemctl restart apache2

8. 测试安装

在浏览器中输入 http://your-server-ip/hustoj,如果安装成功,将会看到 HustOJ 的主页。

9. 常见问题解答

9.1 如何解决安装过程中的错误?

  • 确保 PHP 和 MySQL 的版本兼容。
  • 检查 Apache 配置文件是否正确。

9.2 HustOJ 支持哪些编程语言?

  • HustOJ 支持 C、C++、Java、Python 等多种编程语言。

9.3 如何更新 HustOJ?

  • 通过 Git 获取最新代码后,执行更新脚本即可。

9.4 如何添加新的题目?

  • 通过管理后台,可以方便地添加新题目和测试用例。

10. 总结

通过以上步骤,您应该可以顺利地在 GitHub 上搭建 HustOJ 系统。无论是进行编程练习,还是组织比赛,HustOJ 都是一个很好的选择。希望本文对您有所帮助!

正文完