3.1 快速安装

注意: 本节不能代替下面几节的完整安装。但对于安装过 Domjudge 并且需要一些提示的人来说,相当于一个备忘录。如有疑问,请务必查阅完整的安装说明。

第三方软件:

  • 安装 MySQL-server 或 MariaDB-server 并为其设置 root 密码。

  • 安装 Nginx 或 Apache 、 PHP 和 phpMyAdmin (推荐)。

  • 确保 PHP 可以在 Web服务器和命令行脚本下正常工作。

  • 在 judgehost 上安装必要的编译器。

Domjudge:

  • 解压源码包并执行 ./configure [--enable-fhs|--prefix=<basepath>] --with-baseurl=<url>

  • 执行 make domserver judgehost docs 或者只编译想在这台机器上安装的目标。

  • 用 root 权限执行 make install-{domserver,judgehost,docs}

在 domserver 主机上:

  • 在domserver主机上初始化 MySQL 数据库:bin/dj_setup_database -u root -r install

  • 对于 Apache :把 etc/apache.conf 添加到您的 Apache 配置中,如有必要可以修改此配置,然后重新加载 Web服务器:

    sudo ln -s <安装目录>/domserver/etc/apache.conf /etc/apache2/conf-available/domjudge.conf
    sudo a2enmod rewrite
    sudo a2enconf domjudge
    sudo apache2ctl graceful
  • 对于 Nginx:把 etc/nginx.conf 添加到您的 Nginx 配置中,并将 etc/domjudge-fpm.conf 添加到您的 PHP FPM 池目录,如有必要可以修改此配置,然后重新加载 Web服务器:

    sudo ln -s <安装目录>/domserver/etc/nginx-conf /etc/nginx/site-enable/domjudge
    sudo ln -s <安装目录>/domserver/etc/domjudge-fpm.conf /etc/php/<PHP版本>/fpm/pool.d/domjudge.conf
    sudo service nginx reload
  • 检查网页界面是否工作 (/team, /public, /jury)。

  • 更改 admin 用户的默认密码 ('admin')。

  • 检查 API (/api) 是否工作,并为 judgehost 创建凭证。

  • 通过管理员后台或 phpMyAdmin 添加队伍、用户账号和一些必要的比赛数据。

  • 在管理员后台运行配置检测(config checker)。

在 judgehost 上:

  • useradd -d /nonexistent -U -M -s /bin/false domjudge-run

  • /etc/sudoers.d//etc/sudoer 中添加 sudoer 配置,例如 etc/sudoers-domjudge

  • 开启 cgroup 支持:在 /etc/default/grub 中修改内核参数并重启,然后使用 misc/create_cgroups 为 Domjudge 创建 cgroups。

  • 将正确的凭据放在所有 judgehost 的 /etc/restapi.secret 中(从 domserver 中复制)。

  • 启动评测守护进程:bin/judgedaemon

现在应该提交一组测试代码来检验每一部分是否正常工作。

cd test
make test

注意:根据您在 etc/domserver-config.phpAUTH_METHOD 选择不同,需要额外配置,详细请参考 提交客户端设置

接下来,在管理员后台点击 judging verifier 以自动验证大多数测试,除了一些有多种可能结果的代码必须手工验证。阅读测试的源码以确定什么(不)应该发生。

可选:

  • 在队伍设备上安装 “提交客户端”。

  • 启动气球通知:cd bin; ./balloons 或者在气球的网页界面中操作。

  • 在 judgehost 上创建一个预先构建好的 chroot 树:

    sudo bin/dj_make_chroot [optional arguments]
    $EDITOR lib/judge/chroot-startstop.sh

    通常情况下并不需要修改 chroot-startstop.sh,但当您的解释器不安装在 /usr 或来自其他地方时,请参阅 创建 chroot 环境

  • 有关管理员后台的其他功能,可以安装以下PHP扩展:

    • xdiff PECL:展示提交之间的差异;

Last updated