由於工做須要,想在學校搭建一個OJ平臺用於程序測試與評價。因而須要搭建oJ,因爲以前都是在雲端服務器搭建系統,沒有在實際服務器平臺搭建過,因此遇到很多坑,都靠本身來填補。故而寫下此教程,以求拋磚引玉。html
服務器最好可以採用比較正規的服務器,讀寫和訪問速度會優化不少,因爲諸多特殊緣由,我本次採用的是普通的主機做爲服務器。mysql
我選用的系統爲ubuntu 16.04,系統的鏡像選擇很是重要。由於內置的軟件和安裝源有不一樣,起初我選用優麒麟(由於想用中文純傻瓜,後面發現ubuntu能夠設置中文)。linux
https://opsx.alibaba.com/mirror?lang=zh-cngit
根據本身的須要選擇64位或者32位版本github
https://mirrors.aliyun.com/ubuntu-releases/xenial/ubuntu-16.04.4-desktop-amd64.isoweb
https://mirrors.aliyun.com/ubuntu-releases/xenial/ubuntu-16.04.4-desktop-i386.isosql
安裝教程,參照百度教程,注意區分UEFI和傳統BIOS,還有與windows系統共存的問題。數據庫
二、安裝SSH和VNCubuntu
爲了方便控制,咱們天然要安裝這些。vnc是圖形界面,ssh則是遠程命令行vim
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
三、安裝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做爲用戶名註冊一個用戶,自動成爲管理員。
四、二次開發與須要
mysql數據庫開啓遠程鏈接:
一、登錄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
二、開啓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
參考:http://www.javashuo.com/article/p-bktbiugz-hn.html
搭建FTP服務器
Ubuntu16.04系統中配置FTP
http://www.javashuo.com/article/p-vfgtgrex-nx.html
匿名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,從新提交代碼狀態會改變的