因为学校的原因,于是乎花了一些时间研究hustoj的搭建,之前尝试了各种CSDN上的教程,安装完之后总有一点问题,有最难受的情况是当时装完可以使用,关一次机重启就会报Nginx错误,尝试了各种解决方法还是无果,遂寻找最近的可行策略,之前所参考的都是基于LAMP环境搭建的(注:LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。)
然而,最新版本的hustoj已经无需手动去安装这些环境,在脚本里面都已经全部包含了。
在此特别感谢CSDN:让梦々冬眠 、HLXMBJ两位老哥的指点,更要感谢张浩斌老师的hustoj的源码支持与issues回复。
不要相信百度来的长篇大论的所谓教程,那些都是好几年前的老黄历了,会导致不判题,不显示,不好升级等等问题。
尤其别装apache,如果已经安装,请先停用或卸载,以免80端口冲突。
不要使用LNMP/LAMP/Cpanel/其他面板程序提供的Mysql Nginx Apache PHP 环境,安装脚本已经包含所有必须环境的安装。
如果不是在虚拟机上以下两条可忽略
腾讯云用户请换软件源,增加multiverse。
阿里云用户请百度“阿里云 80端口”
首先安装ubuntu16.04,这个过程在虚拟机里安装请参考:https://blog.csdn.net/qq1326702940/article/details/82322079
安装前最好执行以下命令切换至root用户操作权限,终端输入命令:
sudo -i #输入当前用户密码后以root权限登录shell,无时间限制。使用exit或logout退出。
或
sudo su #输入当前用户密码后以root权限登录shell
最好安装一下VMware Tools,安装过程参考:https://blog.csdn.net/sh21_/article/details/52453493 毕竟安装完这个之后Ubuntu桌面窗口大小就可以调整了,而且从宿主主机可以直接复制粘贴东西到虚拟机里,感觉很方便,不然每次输入数字,像我一样习惯用小键盘输入的人还得多按一下NumLock键才能输入。
(因为本人算是Linux新手,如果有和我一样的新手,最好保证Ubuntu系统是纯净的未安装其他软件,否则可能引起各种奇怪的安装错误或者bug)
然后用下面脚本快速安装OJ:
1.获取安装脚本:
wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu16+.sh
2.以超级用户身份运行bash命令语言解释器安装刚才下载的脚本:
sudo bash install-ubuntu16+.sh
期间如果有设置mysql root账户密码的,自己设置就好了(我习惯用root),但是一定要记住,那个密码是管理数据库的重要凭证。
等脚本运行完成,最后会有done字样出现,此时即表示hustoj已经完成,在本地浏览器输入:localhost即可看到hustoj页面。
此时,还需要配置一下,比方说去除原本的广告,解决无法修改公告等问题。
(1)修改db_info.inc.php文件
vim /home/judge/src/web/include/db_info.inc.php #修改oj的配置,如开放验证码,注册审核等
进入db_info.php文件后,点击键盘上的i键进入插入模式,移动到想要修改的位置修改,修改完成后,输入:wq以结束编辑并保存
如果提示:
程序“vim”已包含在下列软件包中:
* vim
* vim-gnome
* vim-tiny
* vim-gtk
* vim-nox
请尝试:
代码如下: apt-get install <选定的软件包>
按照提示输入
则在终端输入以下命令安装vim:
sudo apt-get install vim
关于vim命令详细的用法,参考:https://blog.csdn.net/williamfan21c/article/details/56495261
(2)修改judge.conf文件(如果不更改可以跳过此步,这个文件用来配置判题judged)
vim /home/judge/etc/judge.conf
(3)修改公告(解决公告无法修改的问题)
sudo chown www-data -R /home/judge/src/web
(4)修改js.php文件以去除广告
vim /home/judge/src/web/template/bs3/js.php
找到:
$("body").append("
欢迎关>注微信公众号onlinejudge");
修改为:
即可去掉页面底部的作者公众号及支付宝红包等广告。
至此,oj环境搭建完成,注册一个用户名(学号)为:admin的账户,自动成为管理员。
以下内容是局域网访问本机电脑VM虚拟主机项目设置,设置完成后就可在局域网内访问hustoj。
设置步骤参考:https://blog.csdn.net/will5451/article/details/54646589
设置完成即可在机房畅快使用hustoj。
如果在运行过程中,勿动了web代码导致OJ无法正常显示,可以在终端输入以下命令进行修复:
cd /home/judge/src/install #进入install目录
sudo bash fixing.sh #执行修复脚本