微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

开源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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐