hustoj搭建

本文详细介绍了HUSTOJ在线判题系统的环境搭建过程,包括在Ubuntu14.04上的快速安装,重要配置文件的调整,以及如何以管理员身份进行维护。此外,还提供了远程访问数据库的解决方案,帮助读者深入了解数据库结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,背景

Online Judge系统(简称OJ)是一个在线的判题系统。用户可以在线提交程序多种程序(如C、C++)源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。Hustoj 作为一个开源的项目,帮助到了很多学校建立起了属于自己的在线ACM 评测系统,在这里我将各方面资料以及我实际安装运行中的各种问题,汇总起来,供大家参考

二,环境搭建
由于hustoj的源码还在不断的优化,很多网上之前的教程基本上有些过时,所以这里我们必须要先到https://github.com/zhblue/hustoj看一下readme文档,看看人家hustoj的开发者是怎么说的,本人就是因为没早点去看而走了一些弯路。
首先是操作系统的选择,第一必须是linux,然后近期github的svn访问缓慢,可以到release中下载tar.gz版本,然后用install目录下的*-bytgz.sh脚本安装。 但是注意这样安装的实例,将来升级时只能手工升级。

首先安装Ubuntu14.04(最稳定),然后用下面脚本快速安装OJ:

wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu14.04.sh
sudo bash install-ubuntu14.04.sh
或者安装ubuntu16.04(拥有更新的编译器版本),然后用下面脚本:
速安装OJ:wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu16+.sh
sudo bash install-ubuntu16+.sh
们就选择稳定版本Ubuntu14.04
三,配置安装完成,用admin作为用户名注册一个用户,自动成为管理员。

安装后几个重要配置文件的位置

/home/judge/etc/judge.conf
/home/judge/src/web/include/db_info.inc.php
/etc/php5/fpm/php.ini 或 /etc/php7.0/fpm/php.ini
/etc/nginx/sites-enabled/default
这些文件的配置可参考上的一些文章
由于是使用的nginx服务器故以上配置涉及打开目录的设置和端口
设置
四,以管理员进入维护
打开你的云服务器的地址,以你注册的管理员登录,进入管理界面可以以对前台有一定的更改权限,和添加和删除题目的权限等
五,远程访问数据库
由于本人搭建hustoj为了学习优秀的开发方式,故比较想了解其数据库的结构,于是想用sqlyog访问其数据库
首先第一个问题 错误提示ERROR 2003: Can’t connect to MySQL server on ‘xxxxxxxxx’ (10061)

Mysql数据库的默认配置文件my.cnf(linux下)中的bind-address默认为127.0.0.1,所以就算你创建了可以 remote访问的用户,你也不能使用mysql -h命令进行访问,若访问就会出现上出问题,因为此时Mysql只接受localhost,所以需要把bind-address屏蔽掉。
my.cnf一般在/etc/mysql下面,如果不在使用locate my.cnf查找,修改前的my.cnf配置文件为:
修改前的my.cnf配置文件代码
找到
bind-address = 127.0.0.1
改为
#bind-address = 127.0.0.1

然后继续尝试
错误代码是1130,ERROR 1130: Host 192.168.2.159 is not allowed to connect to this MySQL server
默认是不能用客户端远程连接的,阿里云提供的help.docx里面做了设置说明,mysql密码默认存放在/alidata/account.log

mysql -u root -p
mysql>use mysql;
mysql>select ‘host’ from user where user=‘root’;
mysql>update user set host = ‘%’ where user =‘root’;
mysql>flush privileges;
mysql>select ‘host’ from user where user=‘root’;
第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。
重起mysql服务即可完成

然后 Access denied for user ‘root’@‘192.168.91.1’ (using password: YES)
这是由于还有权限设置的问题,只有mysql本地主机的用户才有权限 故执行grant all privileges on . to root@’%’ identified by ‘password’;
然后再尝试连接
就可以访问了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值