HUSTOJ平台的搭建
-
首先,你要有一个服务器,本次记录的是阿里云Ubuntu18.04平台下的搭建
-
搭建LAMP环境(LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。)
- 键入
sudo apt-get update && sudo apt-get upgrade
- 整合安装Mysql、PHP、Apache(单独安装?多次实验发现端口冲突问题,建议直接跳到步骤3)
sudo apt-get install apache2 php-mysql libapache2-mod-php mysql-server
- 安装后重启apache
sudo service apache2 restart
- 在浏览器中输入你的 IP地址就可以访问到如下页面(如果是用ESC的,没有反应,查看https://blog.csdn.net/qq_41661918/article/details/88051777)
- 实现输出phpinfo网页,键入
vi /var/www/html/phpinfo.php
<?php echo phpinfo(); ?>
- 保存并退出, 在浏览器中输入 http://localhost/phpinfo.php (localhost 位置填你的ip地址或者域名) ,你会进入如下界面
- 键入
-
安装HUSTOJ
-
HUSJOJ的Github网址:https://github.com/zhblue/hustoj,可以自行根据平台选择;以下为Ubuntu18.04安装方式
-
基于 Ubuntu 18.04 通过 Gitee 安装
wget https://gitee.com/zhblue/hustoj/raw/master/trunk/install/install-ubuntu18-gitee.sh sudo bash install-ubuntu18-gitee.sh
-
将自动安装完毕,详见上述网址
-
-
管理数据库
-
进入数据库,初次无密码直接回车(可自行设置)
mysql -u root -p
-
数据库操作
show databases; --查看数据库 use jol; --进入jol数据库 insert into privilege(user_id,rightstr) values('admin','administrator'); --表示创建管理员账号admin,对应于注册时的学号 --administrator代表管理员权限,这里最好不要修改
-
-
配置oj
-
cd查看目录下的db_info.inc.php文件 可以更改网页内容(如果不更改你可以直接跳过)
cd /home/judge/src/web/include | ls
-
目录下的 judge.conf文件 这也是一些相关配置 可以跳过
cd /home/judge/etc | ls
-
-
oj优化(待试验,可直接跳过)
-
修改公告
sudo chown www-data -R /home/judge/src/web
-
去除广告(在第34行左右)
sudo vi /home/judge/src/web/template/bs3/js.php //在进行了下面的 mv 操作后上面地址将变为 /var/www/html/web/template/bs3/js.php
-
-
将web文件夹内容放入文件夹 /var/www/html 中(最重要)
-
将web中的文件放入apache网站显示文件夹中
sudo mv /home/judge/src/web/ /var/www/html/
-
重启apache2
sudo service apache2 restart
-
在浏览器中输入 http://你的ip/web,将显示
-
-
添加OJ管理权限
-
在上述网站注册一个账户,账户学号应为之前步骤[4.2]admin处设置的用户名(学号,数据库通过唯一学号来判断用户)。官方文档:安装完成,用“admin”作为用户名注册一个用户,自动成为管理员。
-
此时管理员权限立即生效,个人账号出现“管理”选项
-
若无效,可在终端mysql的jol表下键入如下指令赋予某用户权限
mysql -u root -p --输入密码,回车 use jol; insert into privilege(user_id,rightstr)values('admin','administrator'); --admin表示你要赋予权限的账号--administrator处为你要赋予的权限类型名,权限类型如下
-
-
基本搭建到这里就大功告成啦~
-
官方提供的基本使用视频:→🌐
-
在重启系统之后可能会出现端口冲突问题,导致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细节补充中......🛫