DomServer的安装
DOMjudge 服务器(简称 DOMserver)是运行domjudge网站页面和API,连接队伍,裁判账号和评测机的中央实体
系统安装
系统通常使用Debian GNU/Linux 或其衍生发行版或者 RedHat Enterprise Linux 以及 CentOS 和 Fedora 等相关发行版
以Ubuntu为例,为了您的方便,请安装Ubuntu20.04-server以上的版本,以防安装过程中出现不必要的麻烦
其余说明
不同版本部分文件名称不同,配置方法可能也会有出入,如果遇到报错,请搜索报错原因加以修改。本篇文章所使用的服务器版本为Ubuntu18.04/Ubuntu20.04/Ubuntu22.04,因为都装过,本篇文章对Ubuntu20.04版本兼容性最强
本文有参考官方文档和其余已存在文档
网络配置
使用netplan配置网络(注:在Ubuntu22.04及以上版本已废除gateway4配置网关,改换成routers)
sudo vi /etc/netplan/*.yaml
进入netplan的配置文件
以下为格式参考
在Ubuntu20.04中:
network:
version: 2
renderer: networkd
ethernets:
ens5:
dhcp4: no
addresses: [10.12.13.188/24]
gateway4: 10.12.13.1
nameservers:
addresses: [114.114.114.114, 8.8.8.8]
在Ubuntu22.04及以上版本中:
network:
ethernets:
eth0:
dhcp4: false
addresses: [10.12.13.188/24]
optional: true
routes:
- to: default
via: 10.12.13.1
nameservers:
addresses: [114.114.114.114, 8.8.8.8]
version: 2
应用网络配置:
sudo netplan apply
openssh安装
建议在安装系统之时直接勾选安装openssh选项,如果忘记勾选在系统安装完毕后仍可以安装
1.查看服务器是否装openssh:
dpkg --list | grep ssh
安装openssh
sudo apt-get install ssh
2.ssh的使用:
service ssh start 启动ssh
service ssh stop 关闭ssh
service ssh restart 重启ssh
3.连接ssh:
ssh -p 22 user@host
-p:指定端口号
user:登录的用户名
host:登录的主机
执行登录ssh登录命令后,根据提示输入用户密码。默认的端口号为22,当端口号为22的时候,可以省略
ufw设置
在Ubuntu中,ufw为默认关闭
ufw使用:
sudo ufw status 检查ufw状态
sudo ufw app list 列举出系统上所有应用配置
sudo ufw allow/deny 8080 打开/关闭8080端口
sudo ufw enable/disable 启用/禁用ufw
安装环境依赖
更新apt
sudo apt-get update
sudo apt-get upgrade
安装依赖(其中包含:gcc,g++,mysql,apache2,php,python,texlive,enscript)
sudo apt install gcc g++ make zip unzip mariadb-server \
apache2 php php-cli libapache2-mod-php php-zip \
php-gd php-curl php-mysql php-json php-xml php-intl php-mbstring \
acl bsdmainutils ntp phpmyadmin python-pygments \
libcgroup-dev linuxdoc-tools linuxdoc-tools-text \
groff texlive-latex-recommended texlive-latex-extra \
texlive-fonts-recommended texlive-lang-european composer
sudo apt install enscript
执行过程中安装时选择 apache2,接下来执行
sudo apt install libcurl4-gnutls-dev libjsoncpp-dev libmagic-dev
sudo phpenmod json
安装curl/gnutls/magic库
安装配置DOMjudge
不要把domjudge装在home目录下面,那会发生一些莫名其妙的问题,比如我就遇见过一次比赛中clarification崩了的情况
cd /opt
sudo wget https://www.domjudge.org/releases/domjudge-8.1.3.tar.gz
tar -zxvf domjudge-8.1.3.tar.gz
cd /opt/domjudge-8.1.3/
sudo ./configure --prefix=/opt/domjudge --with-domjudge- user=root --with-baseurl=127.0.0.1
sudo make install-domserver
配置数据库
sudo /opt/domjudge/domserver/bin/dj_setup_database -u root install
配置 Apache2
cd /opt/domjudge/domserver
sudo ln -s /opt/domjudge/domserver/etc/apache.conf /etc/apache2/conf-available/domjudge.conf
sudo a2enmod rewrite
sudo a2enconf domjudge
sudo systemctl reload apache2
sudo chown www-data:www-data -R webapp/var/*
查看domjudge管理员密码和评测机凭据API
sudo cat /opt/domjudge/domserver/etc/initial_admin_password.secret
sudo cat /opt/domjudge/domserver/etc/restapi.secret
配置Mysql
执行
vi /etc/mysql/conf.d/my.cnf
不同版本名字不一样一定要识别
在里面填入
[mysqld]
max_connections = 2000
max_allowed_packect = 100MB
innodb_log_file_size = 100MB
如果服务器够厉害。。。建议往大了填
如果使用的是mariadb,那么你还需要修改/ect/mysql/mariadb.conf.d/50-server.cnf中的max_allowed_packect
apache2修改
在
vi /etc/apache2/apache2.conf
中搜索KeepAlive,设置成Off,然后添加
搜索方式
:/+关键字
------======------------我是分割线--------------======-------------
MaxClients 2000
apache2与MySQL参数调整
根据domjudge网站上的config checker中的提示进入my.cnf和apache配置文件php.ini中修改值,直到警告消失。