最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

如何搭建一個(gè)屬于自己的OJ系統(tǒng)

2023-07-15 18:46 作者:Windows_Linux_  | 我要投稿

在我的博客中閱讀更佳!在嗶哩嗶哩上代碼不會(huì)高亮!

https://blog.mxdyeah.top/?id=6

歡迎各位訪問我的OJ:mxd's Online Judge?(使用HUST OJ搭建)

正文:

Part 1 選擇一個(gè)適合自己的OJ

目前,在網(wǎng)絡(luò)上有很多的OJ系統(tǒng)可以讓我們一鍵部署,特別方便

比如以下OJ都支持一鍵部署:

HUST OJ?https://github.com/zhblue/hustoj/

Hydro?https://docs.hydro.ac/

QDUOJ?https://opensource.qduoj.com/#/

還有很多,我就不一一列出來了

Part 2.1 搭建OJ

  1. 搭建HUST OJ

  2. 搭建Hydro

  3. 搭建QDUOJ



Part 2.2 搭建HUST OJ

其實(shí)官網(wǎng)內(nèi)容已經(jīng)很詳細(xì)了? ?https://github.com/zhblue/hustoj/

我來說幾個(gè)必踩的坑:

1.更換主題模板

修改?db_info.inc.php[默認(rèn)位置/home/judge/src/web/include]?中?$OJ_TEMPLATE?的值 就行

默認(rèn)是 syzoj 改成如下的值就可以使用其他主題!

bs3原版

sweet主題

syzoj主題?added by@renbaoshuo

bshark主題?added by?@yemaster

mdui主題?added by@renbaoshuo


2.SSL配置

如果你像我一樣用的是寶塔面板,只需要按照其他網(wǎng)站一樣部署就行了。特別簡(jiǎn)單

????

如果你沒有使用寶塔面板的,使用的是apache或nginx就要申請(qǐng)證書并且到apache/nginx當(dāng)中正確配置。

3.背景圖片

hust oj 默認(rèn)是從Bing每日一圖同步,可以在配置文件db_info.inc.php[默認(rèn)位置/home/judge/src/web/include]?中?$OJ_BG 的值

比如我的就是這樣的:


其實(shí)db_info.inc.php這里面的注釋都寫的非常詳細(xì)的,各位可以自己研究一下

4.時(shí)間不同步(難點(diǎn))

這個(gè)可是重頭戲,困擾了我好久,就是代碼提交的時(shí)間跟當(dāng)前時(shí)間對(duì)不上,官方文檔里面也沒有但是最后還是被我解決了

具體狀態(tài)表現(xiàn)如下:電腦當(dāng)前時(shí)間14:36,在此時(shí)提交代碼 提交時(shí)間會(huì)晚8小時(shí)。 其實(shí)一眼就可以看出來是時(shí)區(qū)的問題

該怎么解決呢?(在ROOT身份下運(yùn)行)

timedatectl?set-timezone?Asia/Shanghai
timedatectl?set-local-rtc?1

搞定!然后reboot

sudo?reboot

重啟后還是不行?運(yùn)行一下timedatectl? ?

看看是不是像我這樣



再重啟試試!

Part 2.3 搭建 QDUOJ

前提:我是在Ubuntu 22.04?純凈系統(tǒng)?上完成的

我的系統(tǒng)上沒有部署過任何東西?。?/p>

CentOS我沒有測(cè)試過,你可以自己把a(bǔ)pt換成yum。

CentOS已經(jīng)很老了,建議換系統(tǒng)?。。。?/p>

安裝過docker的,請(qǐng)先完全卸載再操作??!以防萬一!??!

完全卸載docker:

https://blog.csdn.net/qq_45495857/article/details/113743109

更新一下軟件源

sudo?apt-get?update

什么?太慢?換個(gè)軟件源就是了!??https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

清華大學(xué)換源鏈接,自己更改發(fā)行版!

然后:

sudo?apt-get?install?-y?vim?python3-pip?curl?git

更新pip


pip3?install?--upgrade?pip
#?或者下面的?看情況
pip?install?--upgrade?pip

然后通過pip 安裝docker-compose

pip?install?docker-compose

下載docker

國(guó)內(nèi)使用腳本一鍵安裝:sudo curl -sSL https://get.daocloud.io/docker | sh

國(guó)外使用腳本一鍵安裝:sudo curl -sSL get.docker.com | sh

然后選擇一個(gè)合適的目錄? 執(zhí)行? 空間一定大于5GiB??!

git?clone?-b?2.0?https://github.com/QingdaoU/OnlineJudgeDeploy.git?&&?cd?OnlineJudgeDeploy

建議更改配置文件(如果沒有特殊要求別操作!?。?

vim?docker-compose.yml

最后,docker-compose一下!(時(shí)間超級(jí)久 10-30min左右)

docker-compose?up?-d

當(dāng)你看見幾個(gè)綠油油的DONE過后就大功告成了?。?/p>


順帶說下,請(qǐng)確保80、3306、6379這幾個(gè)端口不要被占用

當(dāng)服務(wù)啟動(dòng)完成后,執(zhí)行下面命令查看容器運(yùn)行狀態(tài),如果沒有unhealthy?或?Exited (x) xxx?就代表 OJ 已經(jīng)啟動(dòng)成功。

現(xiàn)在就可以開始使用了。HTTP80端口或者HTTPS443端口。

云服務(wù)器的用戶記得放行對(duì)應(yīng)端口

后臺(tái)管理路徑為/admin,自動(dòng)添加的超級(jí)管理員用戶名為?root,密碼為?rootroot,?請(qǐng)務(wù)必及時(shí)修改密碼。

//這幾句轉(zhuǎn)載自https://blog.csdn.net/qq_43058685/article/details/108871714?感謝!

自此,大功告成!各位可自行探索!

QDUOJ SSL 配置

HTTPS 相關(guān)問題

OnlineJudge 強(qiáng)烈推薦使用 HTTPS 協(xié)議

  • 數(shù)據(jù)傳輸加密,提高安全性,防劫持

  • 可以使用 HTTP2,加快訪問速度(默認(rèn)配置)

OnlineJudge 的部署腳本默認(rèn)情況下會(huì)生成一個(gè)自簽名證書,瀏覽器會(huì)提示不信任,可以自己去申請(qǐng)對(duì)應(yīng)域名的可信證書,OnlineJudge 也提供了下面兩個(gè)特性方便 HTTPS 證書的申請(qǐng)和使用。

申請(qǐng) HTTPS 證書

/.well-known?的 url 前綴,會(huì)自動(dòng)使用?data/backend/ssl/.well-known?目錄下面的文件,默認(rèn)情況下?data/backend/ssl/?已經(jīng)存在,所以可以手動(dòng)的創(chuàng)建?.well-known?及其子文件夾,比如需要 url 為?/.well-known/pki-validation/fileauth.txt?的驗(yàn)證文件,就可以創(chuàng)建?data/backend/ssl/.well-known/pki-validation/fileauth.txt?文件,內(nèi)容為指定的內(nèi)容。

然后替換?data/backend/ssl/?下面的證書和私鑰文件,之后?docker exec -it oj-backend sh -c "cd /app/deploy; supervisorctl restart nginx"。

FORCE_HTTPS

如果 HTTPS 配置成功,為了增強(qiáng)安全性,推薦重定向 HTTP 流量到 HTTPS 流量,這時(shí)候可以取消注釋?docker-compose.yml?文件中的?FORCE_HTTPS=1?這一行,然后?docker-compose up -d?重啟即可。



Part 2.4 搭建Hydro OJ

搭建Hydro OJ, 官網(wǎng)說的也比較詳細(xì)? ?https://docs.hydro.ac/docs/install/

我也是說說必踩的坑:

1.SSL

這個(gè)困擾了我好久,最后看來官方文檔加上我的多次嘗試才成功


hydro.ac?{
??log?{
????output?file?/data/access.log?{
??????roll_size?1gb
??????roll_keep_for?72h
????}
????format?json
??}
??root?*?/root/.hydro/static
??@static?{
????file?{
??????try_files?{path}
????}
??}
??handle?@static?{
????file_server
??}
??handle?{
????reverse_proxy?http://127.0.0.1:8888
??}
}

我在此不多贅述,有疑問請(qǐng)留言!


如何搭建一個(gè)屬于自己的OJ系統(tǒng)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
株洲县| 颍上县| 高青县| 澄江县| 呈贡县| 闻喜县| 柳州市| 英超| 和静县| 张家口市| 吴旗县| 遂溪县| 乌苏市| 苏尼特左旗| 忻州市| 中牟县| 鄂州市| 米泉市| 冷水江市| 象州县| 仙游县| 尚志市| 田林县| 西和县| 阿瓦提县| 封开县| 建水县| 黔南| 湛江市| 新乐市| 方山县| 远安县| 三江| 连云港市| 望城县| 忻城县| 交口县| 阳泉市| 白河县| 额济纳旗| 龙泉市|