计算机 · SYZOJ 部署方法概述

计算机 · SYZOJ 部署方法概述

三篇文章一张图系列。

因 SYZOJ web 端数据库实现方法更新,原来写的全删了,可以参考这里完成部署。

文章中推荐用 Ubuntu 18.04 LTS 为系统部署,在 Ubuntu 16.04 上安装时只需要把所有出现的 bionic 都改成 xenial 即可。

在闷声作大死这种精神的召唤下,我在 Ubuntu 18.04 上装了一遍,又在 Ubuntu 16.04 上装了一遍,感觉按照 Wiki 里所写安装其实是不难的(然而我第一遍装的时候,作死地把 web 端和 judge 端的文件都按照原来教程里的位置放了,最后 GG 了)……就是下载太慢了……

其实 syzoj 的文件位置是可以自定义的,然而为了便于安装,可以都按照安装提示的步骤来。阅读步骤是:部署指南 → 网站端部署 → 测评端部署 → 管理全站管理员,邮箱验证。

Wiki 里提供的沙盒下载链接不可用,可以在这里下载,然后解压。

解压之后会多一层 rootfs 文件夹,在之后的测评中可能导致 No Testdata 错误,因此注意建立这一步的文件夹:

mkdir -p /opt/syzoj/sandbox/rootfs

的时候,可以这样:

mkdir -p /opt/syzoj/sandbox

就可以避免了。或者直接按提示建立文件夹。

可能重启之后 web 端就上不去了。出现 CANNOT GET / 错误,可以直接重启服务,这样就好了……

然后对于本机通过管理上传数据包会出现链接被重置错误,其实是因为解压软件没有安装,安装一下 p7zip-full 即可解决。这个 Wiki 里没说,可能是一个坑点……

奇怪的操作

首先对于删除用不着的语言,新版简化了这一操作,直接改 config.json 就行了。

然而自带的 testlib 版本比较旧,可以下载新的,然后参考 LibreOJ 上的魔改版进行自行魔改。主要的修改内容是重定向了三个文件(输入,选手输出和标准输出)和更改了错误信息与分数的输出格式。可以自行对比这里魔改后的 testlib 和正经的 testlib。

然后更改帮助的话是修改 syzoj/views/help.ejs 文件的内容,用 HTML 风格。

干掉一言换成别的可以修改 syzoj/views/index.ejshitokoto 相关内容。

干掉今日运势也是修改 syzoj/views/index.ejs 中今日运势相关内容,就在一言的下面很好找。

期待 SYZOJ 的稳定版……

以上。

编辑于 2018-12-30