一、背景介绍:

因为工作需要,想在学校搭建一个OJ平台用于程序测试与评价。于是需要搭建oJ,由于之前都是在云端服务器搭建系统,没有在实际服务器平台搭建过,所以遇到不少坑,都靠自己来填补。故而写下此教程,以求抛砖引玉。

服务器最好能够采用比较正规的服务器,读写和访问速度会优化很多,由于诸多特殊原因,我本次采用的是普通的主机作为服务器。

二、安装过程:

1、下载与安装系统

我选用的系统为ubuntu 16.04,系统的镜像选择非常重要。因为内置的软件和安装源有不同,起初我选用优麒麟(因为想用中文纯傻瓜,后面发现ubuntu可以设置中文)。

https://opsx.alibaba.com/mirror?lang=zh-cn

根据自己的需要选择64位或者32位版本

https://mirrors.aliyun.com/ubuntu-releases/xenial/ubuntu-16.04.4-desktop-amd64.iso

https://mirrors.aliyun.com/ubuntu-releases/xenial/ubuntu-16.04.4-desktop-i386.iso

安装教程,参照百度教程,注意区分UEFI和传统BIOS,还有与windows系统共存的问题。

2、安装SSH和VNC

为了方便控制,我们自然要安装这些。vnc是图形界面,ssh则是远程命令行

Ubuntu 16.04 LTS 一键安装VNC:https://blog.csdn.net/longhr/article/details/51657610

ssh安装:https://blog.csdn.net/u010447234/article/details/53557795

windwos下远程工具参考:http://server.zzidc.com/fwqrj/1107.html

比较喜欢putty和MobaXterm

3、安装hustoj

https://github.com/zhblue/hustoj

参考官方教程:

或者安装ubuntu16.04(拥有更新的编译器版本),然后用下面脚本快速安装OJ:

wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu16+.sh

sudo bash install-ubuntu16+.sh

安装完成,用admin作为用户名注册一个用户,自动成为管理员。

4、二次开发与需要

mysql数据库开启远程连接:

1、登陆mysql数据库

mysql -u root -p

查看user表

use mysql;

select host,user from user;

//默认查找到的是root对应localhost

update user set host = '%' where user = 'root';

//开发结束后,建议修改回去

update user set host = 'localhost' where user = 'root';

参考:https://www.cnblogs.com/weifeng1463/p/7941625.html

2、开启mysql远程3306端口

查看端口,可以看到3306对应的是本地的127.0.0.1

netstat -an|grep 3306

打开mysql配置文件sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

将bind-address = 127.0.0.1注销​

将mysql进行重启,即可远程访问。

建议开发调试结束后关闭3306远程。

(参考博客:https://yq.aliyun.com/ziliao/5462

----------补充mysql操作-------------------------------

启动mysql数据库

sudo /etc/init.d/mysql start

重启

sudo /etc/init.d/mysql restart

关闭

sudo /etc/init.d/mysql

参考:https://blog.csdn.net/gjkun0202/article/details/70757921

搭建FTP服务器

Linux下搭建FTP服务器(Ubuntu16.04)

Ubuntu16.04系统中配置FTP

https://blog.csdn.net/timothy93bp/article/details/77527531

匿名FTP更适合

https://www.cnblogs.com/jiqing9006/p/8955559.html

FTP还可以更加强大的配置,虚拟本地等等都有

https://blog.csdn.net/xlgen157387/article/details/40117261

默认系统自带的vi编辑器非常难用,我们一般会进行升级为vim

解决ubantu中初始不能正常使用vi方案(退格键/方向键错乱问题):https://blog.csdn.net/linux12121/article/details/80785549

需要的大部分知识都放上来了,真心不容易

20180719 更新,判题机的IP显示问题

编辑 vim  /home/judge/etc/judge.conf

修改 OJ_HTTP_USERNAME=IP

修改IP改为admin或者local,重新提交代码状态会改变的

ubuntu 16.04安装HUSTOJ过程的更多相关文章

  1. Ubuntu 16.04 安装 VMware Tools(解决windows和Ubuntu之间不能互相复制粘贴文件的问题)

    Ubuntu 16.04安装虚拟工具VMware Tools,指的是在虚拟机VMWare安装Ubuntu 16.04后再安装VMware Tools的过程.很多人接触Linux都是从虚拟机开始,而安装 ...

  2. Ubuntu 16.04 安装Mysql数据库

    系统环境 Ubuntu 16.04; 安装步骤 1.通过以下环境安装mysql服务端与客户端软件 sudo apt-get install mysql-server apt-get isntall m ...

  3. ubuntu 16.04 安装pycharm

    Ubuntu16.04下安装Cuda8.0+Caffe+TensorFlow-gpu+Pycharm过程(Simple) ubuntu 16.04 安装pycharm 1.安装java  jdk 直接 ...

  4. Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法)

    Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法) https://blog.csdn.net/ksws0292756/article/details ...

  5. Ubuntu 16.04 安装 Wireshark分析tcpdump的pcap包——sudo apt install wireshark-qt

    tcpdump 的抓包保存到文件的命令参数是-w xxx.cap   抓eth1的包  tcpdump -i eth1 -w /tmp/xxx.cap    抓 192.168.1.123的包  tc ...

  6. 【科研民工笔记2】Ubuntu 16.04 安装nvidia驱动

    我的主机是2060的显卡,用的是安装在U盘中的Ubuntu,开机进入后,因为没有安装驱动,所以界面看以来比较大. 通过手动方式,成功安装驱动,最终成功的方案使用的是run文件安装的方式. 1.手动下载 ...

  7. Ubuntu 16.04 安装 Kodi v17 “Krypton” Alpha 2

    Ubuntu 16.04 安装 Kodi v17 “Krypton” Alpha 2:sudo add-apt-repository ppa:team-xbmc/xbmc-nightlysudo ap ...

  8. Ubuntu 16.04安装QQ国际版图文详细教程

            因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全 ...

  9. Ubuntu 16.04 安装Mysql 5.7 踩坑小记

    title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql ...

随机推荐

  1. FromBottomToTop第十三周项目博客

    FromBottomToTop第十三周项目博客 本周项目计划 完成游戏核心算法以及界面相关类和怪物类 项目进展 用户可选择游戏模式,共有20张不同的地图. 炮台的建立和升级. 小怪的路径算法. 参考资 ...

  2. Dubbo 只注册,只订阅

    只注册场景: 某一个服务,被注册中心的一些服务依赖,但是该服务不提供给消费者调用,这个时候使用只注册,注册到注册中心,注册中心内部服务可以调用该服务,但是消费者不可以.(这个服务是被调用方) 只订阅场 ...

  3. (Matlab)GPU计算简介,及其与CPU计算性能的比较

    1.GPU与CPU结构上的对比 2.GPU能加速我的应用程序吗? 3.GPU与CPU在计算效率上的对比 4.利用Matlab进行GPU计算的一般流程 5.GPU计算的硬件.软件配置 5.1 硬件及驱动 ...

  4. vue-Treeselect实现组织机构(员工)下拉树的功能

    知识点:前端使用vuetree的组件库,调用后台查询组织机构,包括人员的接口 实现下拉树的功能 查考: vue-treeselect官网:https://vue-treeselect.js.org/ ...

  5. Gym - 100283F Bakkar In The Army(二分)

    https://vjudge.net/problem/Gym-100283F 题意: 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 .... 给出这样的序列,然后给出一个n,计算从1 ...

  6. Eclipse开发Android应用 找不到平板

    1.驱动安装正确2.平板的连接方式正确,不要用大容量存储/sd卡模式这个设置在4.3上很难找呀.设置->存储->点右上角的菜单 3.打开USB调试.4.上述问题都检查后,在eclipse里 ...

  7. JAVA消息 AMQP

    AMQP(Advanced Message Queuing Protocol)高级的消息队列

  8. 2018HN多校

    http://acm.hi-54.com/contest_problemset.php?cid=1455 A : 摩斯密码 概览问题列表状态排名 Progress Bar 时间限制:1 Sec 内存限 ...

  9. The web application you are attempting to access on this web server is currently unavailable.......

    今天去服务器安装了个.net 4.0 framework(原本有1.0和2.0的),配置好站点后,选择版本为4.0,访问出错,错误代码如下 Server Application Unavailable ...

  10. Linux vi编辑器的使用

    vi是Visual Interface的简称,它是Linux/Unix下的文本编辑器,例如你想编辑文件english.txt,则你可以在终端下输入 vi english.txt命令,然后就进入了编辑界 ...