0.背景

scnuoj是jnoj的更新版本,因为jnoj已经很长时间不维护了,所以scnuoj团队对jnoj进行了简单的改进。前面几篇文章已经搭建过jnoj了:

JNOJ部署教程(2)—一键部署版 – 每天进步一点点 (longkui.site)

这篇文章尝试在windows上部署运行scnuoj,这样如果以后有时间的话可以二开。

scnuoj的github地址:GitHub – scnu-socoding/scnuoj: 华南师范大学软件学院在线评测系统

注:本文是windows环境,网上用的linux环境,所以一些指令不会完全一样。

1.环境搭建

scnuoj是yii2框架(php)开发的,所以在此之前,你要在电脑上搭建php环境,并安装yii2框架的支持。

简单来说,windows运行这个环境需要:

Linux + NGINX + MariaDB + PHP(7.4 或更高版本)。

需要到的 PHP 插件包括 php-curlphp-xmlphp-fpmphp-mysql

关于环境的搭建可以参考我前面写的几篇文章:

phpstudy搭建php环境 – 每天进步一点点 (longkui.site)

vscode+phpstudy配置php环境 – 每天进步一点点 (longkui.site)

windows下安装composer – 每天进步一点点 (longkui.site)

yii2——windows下搭建yii2框架的安装与运行(1) – 每天进步一点点 (longkui.site)

本文选用php7.4.3(phpstudy)+vscode+MariaDB(8.0.12)

2.代码下载与调试运行

git地址:GitHub – scnu-socoding/scnuoj: 华南师范大学软件学院在线评测系统

下载完毕后的目录如下:

下载完毕后,先配置数据库信息,打开config/db.php

<?php

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=scnuoj',
    'username' => 'socoding',
    'password' => 'socoding',
    'charset' => 'utf8',

    // Schema cache options (for production environment)
    'enableSchemaCache' => !YII_DEBUG,
    'schemaCacheDuration' => 60,
    'schemaCache' => 'cache',
];

把这里面的原始信息替换掉,host表示mysql的主机地址,dbname表示数据库名,username表示数据库用户名,password表示数据库密码。

注:保证mysql已经加入到windows的path中,不然下面的操作会因为没有权限而失败。

下面开始创建数据库及字段,

数据库和字段的配置文件在 /migrations 文件下:

这些文件会创建数据库和相应的字段。

有两种方法可以生成这些数据库表名、字段名。推荐方法二:

方法一:在scnuoj目录下,执行 php yii migrate

会看到下面的图像:

然后输入admin的用户名和密码、邮件等。(windows下不推荐方法一)

方法二

我们打开commands/InstallController.php。找到如下代码:

   echo "\nRun: ./yii migrate";
   echo "\n================================================\n";
   passthru("./yii migrate");

将其中的passthru改成:

   echo "\nRun: ./yii migrate";
   echo "\n================================================\n";
   passthru("php yii migrate");

然后执行:php yii install

同理,配置自定义admin的账号密码后,会看到下面的图像:

然后我们在vscode中新开一个cmd窗口,来启动项目:

php yii serve --port=8880

这里选择了8880端口来运行项目,然后就可以看到下面的运行界面:


3.后记

本文在windows环境下搭建了scnuoj项目,可以成功运行项目,但是还没有测试其他功能,后面的文章中会继续测试和更改。