JNOJ 江南在線評測系統 搭建

江南在線評測系統(Jiangnan Online Judge),是一個在線的判題系統。 用戶可以在線提交程序多種程序(如C、C++、Java)源代碼,系統對源代碼進行編譯和執行,並通過預先設計的測試數據來檢驗程序源代碼的正確性。
GitHub項目介紹:https://www.jnoj.org
GitHub項目地址:https://github.com/shi-yang/jnoj
在線Demo:https://demo.jnoj.org

環境需求

  • 在 Linux 環境下安裝。判題機是在 Linux 環境下寫的,Windows 下無法運行判題機。
  • 搭建 LAMP (或 LANP) 環境:PHP 7.x、MySQL、Apache2 / Nginx
  • 可以參考:LAMP 環境搭建

安裝過程

  • 1.下載 jnoj 運行命令:
    git clone https://github.com/shi-yang/jnoj.git

  • 2.配置 Web 端

    i.配置數據庫信息

    config/db.php文件中配置數據庫信息,例如:

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

    注意: Web 程序不會爲你創建數據庫,需要你自己手動創建該數據庫(創建方法:運行mysql -u root -p登錄MySQL,然後 create database jnoj;,執行···quit;···可退出MySQL)。

    ii.執行安裝命令

    進入 jnoj 目錄,在命令行運行 ./yii install 來安裝。安裝過程會自動導入所需的 SQL 數據,並且需要你根據提示輸入管理員的賬號密碼。

做好以上步驟後便可以使用 Web 端:

http://localhost/jnoj/web/

此時還不能進行判題,需配置判題機才能判題。

  • 3.配置判題機

    i.安裝編譯的依賴,運行命令:sudo apt install libmysqlclient-dev libmysql++-dev
    ii.創建一個用於判題的用戶,運行命令:sudo useradd -m -u 1536 judge
    iii.將控制檯切換到 judge目錄(即運行 cd judge命令),然後運行 make命令
    iiii.運行 sudo ./dispatcher命令

  • 4.配置配置多邊形出題系統

    i.將控制檯切換到 polygon目錄(即運行 cd polygon命令),然後運行 make命令
    ii.運行 sudo ./polygon命令
    安裝過程執行命令如下:

    $ cd /var/www/html
    $ git clone https://github.com/shi-yang/jnoj.git
    $ cd jnoj
    $ vim config/db.php
    $ ./yii install
    $ sudo useradd -m -u 1536 judge
    $ vim judge/config.ini
    $ cd judge
    $ sudo apt install libmysqlclient-dev libmysql++-dev
    $ make
    $ sudo ./dispatcher
    $ cd ../polygon
    $ vim config.ini
    $ make
    $ sudo ./polygon
    

善後

限制上傳文件大小和評測時間 (php&apache2裏修改)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章