一、背景介绍:

因为工作需要,想在学校搭建一个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. 五,动态库(dll)的封装与使用

    在项目开发中,我们经常会使用到动态库(dll),要么是使用别人的动态库,要么是将功能函数封装为动态库给别人用.那么如何封装和使用动态库呢?以下内容为你讲解. 1.动态库的封装 以vs2010为例,我们 ...

  2. 使用4K显示器遇到的坑

    第一大坑:鼠标移动变慢,有强烈的滞后感 让人怀疑是不是系统因为要支持4K屏而变慢了,或者是鼠标坏了!甚至猜想是不是4K显示器的屏幕,因为分辨率太高,导致鼠标需要移动的点太多,因而耗时,产生了滞后感. ...

  3. 创建一个 SQLite 数据库

    首先,我们学习如何创建一个SQLite 数据库.如果想要在data/example.sqlite 这个路径中创建一个示例数据库,就必须确保该路径存在.如果该路径不存在,就必须先创建路径:if (!di ...

  4. Template Method(模板方法)

    意图: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 适用性: 一次性实现一个算法的不变的部分, ...

  5. H5 canvas控制坦克移动

    接着上一篇(http://www.cnblogs.com/zhouhuan/p/H5_tankgame.html),这一篇研究一下怎么响应玩家的操作让坦克进行相应的移动.   1. 了解keydown ...

  6. 递推-练习1--noi1760 菲波那契数列(2)

    递推-练习1--noi1760 菲波那契数列(2) 一.心得 二.题目 1760:菲波那契数列(2) 总时间限制:  1000ms 内存限制:  65536kB 描述 菲波那契数列是指这样的数列: 数 ...

  7. 获取和设置HTML标签中的数据

  8. 使用Python scikit-learn 库实现神经网络算法

    1:神经网络算法简介 2:Backpropagation算法详细介绍 3:非线性转化方程举例 4:自己实现神经网络算法NeuralNetwork 5:基于NeuralNetwork的XOR实例 6:基 ...

  9. mysql 判断表字段是否存在,然后修改

    -- ---------------------------- -- 判断 vrv_paw_rule 表是否存在 thresholdMin 字段,不存在则添加; 存在则修改字段类型 DELIMITER ...

  10. LINUX 操作记录到syslog,并发送到syslog服务器上

    首先配置命令记录到syslog中: 在客户端的/etc/bashrc  下添加: logger -p local3.info  \"`who am i` ================== ...