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] = 1024M,php_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、--hostname、DAEMON_ID=后面的值。
随后可以前往 Domjudge 管理页面的 judgehousts 查看是否上线。

浙公网安备 33010602011771号