Skip to content

Instantly share code, notes, and snippets.

@rmnssnvsk
Last active August 29, 2015 14:14
Show Gist options
  • Save rmnssnvsk/7c4a1ac4696debe13c8a to your computer and use it in GitHub Desktop.
Save rmnssnvsk/7c4a1ac4696debe13c8a to your computer and use it in GitHub Desktop.

Установка Ejudge

Необходимые пакеты

# Без комментариев
sudo apt-get update && sudo apt-get upgrade -y

# Установка зависимостей
sudo apt-get install -y g++ uuid-dev bison flex gettext expat libexpat1-dev zlib1g-dev libncurses5-dev libncursesw5-dev sendmail gawk apache2 libcurl4-gnutls-dev libzip-dev libiconv-hook-dev gettext libdwarf-dev libelf-dev 

sudo apt-get install -y libmysqlclient-dev mysql-server mysql-client 

# C#
sudo apt-get install -y mono-mcs

# Java
sudo apt-get install -y openjdk-7-jdk

# Libdwarf
sudo mkdir /usr/include/libdwarf
sudo ln -s /usr/include/dwarf.h /usr/include/libdwarf/dwarf.h
sudo ln -s /usr/include/libdwarf.h /usr/include/libdwarf/libdwarf.h

# Создание пользователя Ejudge
sudo groupadd ejudge
sudo useradd ejudge -s /bin/bash -m -d /home/ejudge -g ejudge

# Создаем каталоги
sudo mkdir -p /home/judges
sudo chown ejudge:ejudge /home/judges
sudo chmod 0755 /home/judges

# Создаем каталоги для apache2
sudo mkdir -p /var/www/ejudge/cgi-bin
sudo mkdir -p /var/www/ejudge/htdocs
sudo chmod 0777 /var/www/ejudge/cgi-bin /var/www/ejudge/htdocs

# Включаем CGI
sudo a2enmod cgi
sudo service apache2 restart

Настраиваем БД

mysql -u root -pDDS6FEjudgeServer
CREATE USER 'ejudge'@'localhost' IDENTIFIED BY 'ejudge';
GRANT ALL PRIVILEGES ON * . * TO 'ejudge'@'localhost';
CREATE DATABASE ejudge;

Сборка Ejudge

sudo su ejudge

cd /home/ejudge

wget --no-check-certificate http://www.ejudge.ru/download/ejudge-3.2.2.tgz
tar xvzf ejudge-3.2.2.tgz
cd ejudge
./configure --prefix=/home/ejudge/inst-ejudge --enable-contests-home-dir=/home/judges --with-httpd-cgi-bin-dir=/var/www/ejudge/cgi-bin --with-httpd-htdocs-dir=/var/www/ejudge/htdocs --enable-ajax --enable-charset=utf-8
make && make install
./ejudge-setup
./ejudge-upgrade-web

Запускаем скрипт для настройки Ejudge

Под ROOT`ом

/home/ejudge/inst-ejudge/bin/ejudge-install.sh

Apache2

nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
	DocumentRoot /var/www/ejudge/htdocs

	ScriptAlias /cgi-bin/ "/var/www/ejudge/cgi-bin/"

	<Directory "/var/www/ejudge/cgi-bin">
		Options +ExecCGI +FollowSymLinks +Includes
		AllowOverride None
		Require all granted
	</Directory>

	<Directory "/var/www/ejudge/htdocs">
		Require all granted
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment