开源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;
    }

}
修改后使用 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)

你可能感兴趣的:(其他)