2026年如何快速部署Domjudge9.0.0

操作系统推荐

Ubuntu 22.04
Ubuntu 24.04
debain 13
debain 12

相关依赖

sudo apt update
sudo apt upgrade -y
sudo apt install acl zip unzip mariadb-server nginx php-fpm php-gd php-cli php-intl php-mbstring php-mysql php-curl php-json php-xml php-zip composer ntp make gcc g++ debootstrap pkg-config libcgroup-dev lsof procps libcurl4-gnutls-dev libjsoncpp-dev libmagic-dev -y

下载官方压缩包

cd /opt/
sudo wget https://www.domjudge.org/releases/domjudge-9.0.0.tar.gz
sudo tar -zxvf domjudge-9.0.0.tar.gz
rm domjudge-9.0.0.tar.gz

编译 Domjudge

cd /opt/domjudge-9.0.0
sudo ./configure --prefix=/opt/domjudge --with-domjudge-user=root --with-baseurl=127.0.0.1

结束无报错后,运行下方命令。中途有询问输入yes即可。

sudo make domserver

安装 Domjudge 服务端

安装domserver、初始化并安装数据库结构及配置前端。

sudo make install-domserver
cd /opt/domjudge/domserver
sudo bin/dj_setup_database -s install
sudo ln -s /opt/domjudge/domserver/etc/nginx-conf /etc/nginx/sites-enabled/domjudge
sudo ln -s /opt/domjudge/domserver/etc/domjudge-fpm.conf /etc/php/8.3/fpm/pool.d/domjudge.conf
sudo service php8.3-fpm reload
systemctl daemon-reload

配置nginx

cd /etc/nginx/sites-enabled
sudo rm default
sudo service nginx reload
cd /opt/domjudge/domserver
sudo chown www-data:www-data -R webapp/public/*
cd /opt

随后即可通过:http://你服务器的IP地址/domjudge访问主页。
默认账号admin密码可通过下面命令获取:

sudo cat /opt/domjudge/domserver/etc/initial_admin_password.secret

配置 php 和 mysql 使得服务正常运行

配置 PHP

vim /etc/php/8.3/fpm/pool.d/domjudge.conf

找到php_admin_value[memory_limit]改为php_admin_value[memory_limit] = 1024Mphp_admin_value[date.timezone]改为php_admin_value[date.timezone] = Asia/Shanghai

接下来保存退出,并应用。

sudo service php8.3-fpm reload
sudo systemctl restart php8.3-fpm.service

配置 mysql

vim /etc/mysql/conf.d/mysql.cnf

将内容的相应部分改成下方模样:

[mysqld]
max_connections = 1000
max_allowed_packet = 1024MB
innodb_log_file_size = 5120MB

继续配置

vim /etc/mysql/mariadb.conf.d/50-server.cnf

max_allowed_packet = 1G 取消注释。

保存并重启数据库:

sudo systemctl restart mysql

如果一切正常,刷新 DOMjudge 的 web 页面,点进 config checker,你会看到全绿。

配置 judgehost 评测机

本文采用 docker 部署。

安装 docker

此处使用了LinuxMirrors的快速部署脚本。

bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

按照提示选择即可。

配置 cgroups

sudo vim /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT添加下面的配置:

GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory swapaccount=1 systemd.unified_cgroup_hierarchy=0"

保存,随后确保你的服务器没有正在运行的其他服务,保存并重启服务器。

sudo update-grub
sudo reboot

安装评测机

获取 <domserver password>

sudo cat /opt/domjudge/domserver/etc/restapi.secret

随后安装评测机,将下面命令里的部分补充完整:

sudo docker run -d -it --restart=always --privileged -v /sys/fs/cgroup:/sys/fs/cgroup --name judgehost-1 --hostname judge1 --network="host" -e DAEMON_ID=1 -e CONTAINER_TIMEZONE=Asia/Shanghai -e JUDGEDAEMON_PASSWORD=<domserver password> -e DOMSERVER_BASEURL=http://你的Domjudge服务端IP/domjudge/ domjudge/judgehost:9.0.0

如需部署多台请更改--name--hostnameDAEMON_ID=后面的值。
随后可以前往 Domjudge 管理页面的 judgehousts 查看是否上线。

posted @ 2026-02-03 19:11  Li_Albert  阅读(0)  评论(0)    收藏  举报