关于HOJ的搭建和二开经验小结

经验在最后,先说流程。

除了HOJ,之前先装的HDU,属实难用,然后是hustOJ,嗯很好用,但架不住丑,对管理员实在不友好。

好了不闲记,进入正题:

一、流程

1、官网文档先过一遍。

2、配置好docker和docker-compose(这里注意看下面的经验)。反正尽量不要用官网提供的方式,自己百度安装。

3、进行项目克隆。尽量用码云的啦,GitHub除非你先在Ubuntu上装个clash for linux,实在难用。

4、等待下载,下载完一定要记清下面两个文件的位置。

├── docker-compose.yml
├── .env

5、进入.env改密码。别改错了地方。

6、像我是机房内网环境HOJ无法加载,需要取消CDN转发,不然学生机一旦断网,是加载不出来页面的。具体注意看下面的经验,以及取消前端CDN转发

7、npm打包,这里遇到的坑蛮多的,总之还是在虚拟机多存快照,随便试,解决一个大问题继续拍摄快照,解决不了回滚快照。

8、二开的话,看下面的经验咯。

9、花了几天时间,零零碎碎的该忘的都忘了,不知道该记些什么,下次要养成边查问题解决问题边记的习惯。

10、以上,备用。

二、经验

1、要先npm install(最好先更新apt update),进行依赖下载之后才能进行npm run build进行打包。

2、在1之前需要现更换镜像源
    淘宝镜像源
    npm config set registry https://registry.npm.taobao.org (旧版,已到期)
    
    淘宝中国镜像源
    npm config set registry https://registry.npmmirror.com (新版)
    
    腾讯云镜像源
    npm config set registry http://mirrors.cloud.tencent.com/npm/
    
    华为云镜像源
    npm config set registry https://mirrors.huaweicloud.com/repository/npm/
    
    阿里云 NPM 镜像源:
    https://npm.aliyun.com
    
    官方默认全局镜像源:
    npm config set registry https://registry.npmjs.org
    
    检查当前镜像
    npm config get registry

3、如果出现hoj服务器错误需要刷新的提示,重启系统可以解决。

4、因为npm和nodejs版本问题,最好用最新的,npm install npm@latest。

5、如果下载失败,建议先清缓存npm cache clean --force;接着在项目目录下打开隐藏,删除node_modules 文件夹和 package-lock.json 文件,然后重新执行 npm install。

5、注意nodejs要是17版本之前的(经过他妈的n次报错卸载,17版本不能用,用16的),不然会报错,注意第3点有误。安装过程

    创建目录:

    sudo mkdir -p /usr/local/lib/nodejs

    解压二进制包至存放目录

    sudo tar -xJvf node-v16.20.2-linux-x64.tar.xz -C /usr/local/lib/nodejs

    进入解压后的目录:

    cd /usr/local/lib/nodejs/node-v16.20.2-linux-x64

    将Node.js二进制包添加到系统环境变量:

    sudo cp -R * /usr/local/

    验证安装:

        node -v
        npm -v
        
6、遇到了一个证书过期的问题(这里回到第五步就行了,主要还是把package-lock.json 文件删掉,一切问题无了)
    清除npm缓存
    npm cache clean --force
    取消ssl验证:
    npm config set strict-ssl false
    之后再npm install

7、部署docker-compose、docker、npm(nodejs自带)时,关注好版本,最好下载好二进制离线安装,网络易丢包,且需要安装各种镜像源等环境,然后报各种错,麻烦。

8、打包文件传到 /home/zt/hoj-deploy/standAlone/html/ 下面。

9、你要改的各种前端在dist的/home/zt/hoj-deploy/standAlone/hoj/www/html/dist/assets/js/app.99ec584b.js中,注意重点是app.99ec584b.js这个文件,ubuntu的文本编辑器也好,vim也罢,是打开会卡顿的,建议下载到桌面,用hbuild打开,进行格式化,然后利用查找功能和F12结合进行二开。

10、遇到服务器不停的提示“服务器错误,请重新刷新”,小伙子不要慌,有两个可能,数据库连接还没有加载完,还有一种可能还是数据库连接还没有加载完,所以你有两个办法,第一个办法是直接重启,第二个办法是,不好意思就不是直接重启了,就是到docker-compose.yml文件所在目录执行docker-compose down,完事之后再执行docker-compose up -d,注意这个-d是后台执行的意思,so,打开127.0.0.1运行一下试试,没作用那就再次重启,重启之后还是有问题,他娘的,直接等等。(其实听他的,一直刷新,然后等待就好了,反正是数据库有延迟)

11、一般内存都会超过4G的,记得参考官网文档进行修改。反正我是内网搭建,服务器最低都是32G了。

posted @ 2024-05-25 03:40  随手一只风  阅读(376)  评论(0编辑  收藏  举报