開源OJ—JNOJ(江南OJ)部署教程(1)


原文鏈接:這里
0.前言

前面我們已經搭建了QingdaoUOJ和hydroOJ了,今天這篇文章我們在嘗試搭建一下JNOJ

官方地址:https://www.jnoj.org/

官方github:https://github.com/shi-yang/jnoj

官方碼雲:https://gitee.com/shi-yang/jnoj

本機環境:centOS7.5+寶塔面板7.5

1.一鍵安裝腳本

JNOJ支持一鍵安裝腳本

wget https://raw.githubusercontent.com/shi-yang/jnoj/master/docs/install.sh
sudo bash install.sh

該腳本將 OJ 安裝在 /home/judge/jnoj 目錄下。

安裝后管理員賬號: admin,密碼:123456

初始默認密碼過於簡單,請立即登陸修改

2.自動部署

因為我的服務器中已經有很多軟件了,所以就沒有采用一鍵部署腳本,采用手動部署的方法。

需要LNMP環境,因為寶塔已經有一鍵安裝腳本了,所以就不作詳細解釋。

我們在服務器中新建一個文件夾用來單獨裝jnoj。

(1)下載

git clone https://github.com/shi-yang/jnoj.git

(2)配置web端

我們首先要在mysql中創建屬於jnoj的數據庫,並設置好密碼。

在 jnoj/config/db.php 文件中配置數據庫信息,請根據數據庫實際情況修改相應的 username 和 password。在服務器上可以使用 vim 或 nano 命令進行編輯。例如:

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=jnoj',
    'username' => 'root',
    'password' => '123456',
    'charset' => 'utf8',
];

(3)執行安裝命令

我們執行

./yii install

如果報錯 Error: Method ReflectionParameter::getClass() is deprecated。說明php版本過高,降低一下版本就行。寶塔面板如何降低php版本請點擊這里

如果報錯 Error: passthru() has been disabled for security reasons可以點擊這里。

遇到下面這幅圖,輸入yes,繼續。

然后輸入全局管理員的用戶名和密碼還有郵箱地址

然后就出現安裝成功了畫面

3.訪問相關功能

前面我們已經部署完了,接下來我們要配置相關頁面並訪問相關功能了。一共有兩種方式

(1)方式一:修改 /etc/nginx/sites-enabled/default 文件,需要修改的配置:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        # 修改 root 后的路徑為 jnoj/web 目錄所對應的路徑。看你具體把 jnoj 目錄放到哪里。
        root /home/judge/jnoj/web;

        index index.php;

        server_name _;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }
}
  1. 修改后使用 sudo nginx -s reload 重現加載配置 做好以上步驟后便可以使用 Web 端:
http://ip地址
本地主機則訪問  http://127.0.0.1

(2)方式二:寶塔面板修改

因為服務器上還有別的網站,都交給寶塔統一管理了,而且后期還要配置域名,所以平常喜歡用寶塔部署網站。

先隨便給他一個域名,把網站指向jnoj的web目錄。

然后,我新添加一個ip和端口,這個指向我們剛才新建的網站。

然后訪問IP+端口就能看到了;

4.后記

JNOJ界面比較精簡,功能夠用。但是缺點也很明顯, 開發者好像已經不再維護了,加了github上的QQ后留言一直沒有人回復。而且搭建出來的頁面,點擊相關功能沒有反應,所以,如果你的代碼能力非常強,可以下載下來研究一下(這個的源代碼的結構還是不錯的),如果你僅僅想搭建一個簡單OJ來使用,則不建議搭建這個OJ。

注:后面的文章繼續開發了這個OJ,請站內搜索查看最新文章。

后續的這個部署教程解決了上面的問題:JNOJ部署教程(2)—一鍵部署版 – 每天進步一點點 (longkui.site)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM