帶你快速搭建自己的Online Judge平臺

北岸冷若冰霜發表於2021-08-11

快速開始

在Ubuntu16.04主機上安裝HUSTOJ

專案地址:zhblue/hustoj
官方網站:hustoj

主機說明

使用者名稱密碼
ubuntuubuntu
rootroot
judgejudge

網路配置

ifconfig
cat /etc/network/interfaces
複製程式碼
ubuntu@ubuntu:~$ cat /etc/network/interfaces
 
# interfaces(5) file used by ifup(8) and ifdown(8)
source /etc/network/interfaces.d/*
 
# The loopback network interface
auto lo
iface lo inet loopback
 
auto ens33
iface ens33 inet dhcp
 
ubuntu@ubuntu:~$ ifconfig
 
ens33     Link encap:Ethernet  HWaddr 00:0c:29:be:bc:ac 
 
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
 
          inet6 addr: fe80::20c:29ff:febe:bcac/64 Scope:Link
 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 
          RX packets:82 errors:0 dropped:0 overruns:0 frame:0
 
          TX packets:117 errors:0 dropped:0 overruns:0 carrier:0
 
          collisions:0 txqueuelen:1000
 
          RX bytes:13775 (13.7 KB)  TX bytes:21060 (21.0 KB)
 
 
 
lo        Link encap:Local Loopback 
 
          inet addr:127.0.0.1  Mask:255.0.0.0
 
          inet6 addr: ::1/128 Scope:Host
 
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
 
          RX packets:737 errors:0 dropped:0 overruns:0 frame:0
 
          TX packets:737 errors:0 dropped:0 overruns:0 carrier:0
 
          collisions:0 txqueuelen:1000
 
          RX bytes:62712 (62.7 KB)  TX bytes:62712 (62.7 KB)
複製程式碼

image.png

基於Ubuntu16.04安裝

首先安裝ubuntu16.04(推薦使用,php7速度槓槓的),然後用下面指令碼快速安裝OJ:

wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu16+.sh
sudo bash install-ubuntu16+.sh
複製程式碼

安裝視訊教程

互動設定資料庫root賬戶密碼:123456

image.png

-- 報錯處理

可能會報錯不過不影響使用

ln -s /usr/bin/mcs /usr/bin/gmcs
ln -sf /usr/bin/mcs /usr/bin/gmcs
複製程式碼

部署完成

admin作為使用者名稱註冊一個使用者,自動成為管理員。

IP地址直接訪問,admin密碼123456

匯入題目

測試題目執行狀態

配置管理

大部分功能和選項的開關和引數調整都在配置檔案中,安裝後幾個重要配置檔案的位置如下:

/home/judge/etc/judge.conf  # 判題judged/judge_client
/home/judge/src/web/include/db_info.inc.php   # Web
/etc/php5/fpm/php.ini 或 /etc/php7.0/fpm/php.ini 或 /etc/php.ini (in Centos7)  # php
/etc/nginx/sites-enabled/default 或 /etc/nginx/nginx.conf (in Centos7)   # nginx
複製程式碼

1.如果使用者量比較大,報50x錯誤,可能需要修改/etc/nginx/nginx.conf中的設定:

worker_processes 8;    #其中數字8可以取CPU核心數的整數倍。
    events {
                worker_connections 2048;
                multi_accept on;
}
複製程式碼

2.如果遇到比賽人數多,比賽排名xls檔案無法下載,請修改/etc/nginx/sites-enabled/default,在fastcgi_pass一行的後面增加:

fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
複製程式碼

儲存後,重啟nginx

sudo service nginx restart
複製程式碼

參考:husto基於ubuntu1604安裝

3.配置訪問埠

sudo vim /etc/nginx/sites-enabled/default
複製程式碼

image.png

而後重啟nginx

sudo service nginx restart 
複製程式碼

更新

sudo bash /home/judge/src/install/update-hustoj
複製程式碼

在升級過程中,genuine需求配置選項,這裡選的是,tc

會替換已有的檔案,psh配置資料庫檔案也會變化,需要修改

sudo vim /home/judge/src/web/include/db_info.inc.php
複製程式碼

image.png

重啟nginx

sudo service nginx restart 
複製程式碼

升級指令碼執行後,可能需要登陸web端管理後臺,在web頁面執行一次更新資料庫。

更多學習

請前往GItHub專案zhblue/hustoj官方demo進一步瞭解。

相關文章