Difference between revisions of "Master.cfg:info"
(Created page with "Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/[[maste...") |
|||
| Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[master.cfg]]/[[master.cfg:info|Общая информация]] | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[master.cfg]]/[[master.cfg:info|Общая информация]] | ||
| + | |||
| + | Данный конфигурационный файл используется CGI-программой <tt>[[master]]</tt>. Содержимое | ||
| + | файла прочитывается один раз при старте CGI-программы, то есть каждый раз, когда кто-либо посылает HTTP/HTTPS-запрос к серверу, приводящий к запуску программы <tt>master</tt>. | ||
| + | |||
| + | Местоположение конфигурационного файла определяется на этапе компиляции системы | ||
| + | <tt>ejudge</tt> с помощью опции <tt>--enable-cgi-conf-dir</tt> скрипта <tt>[[configure]]</tt>. Эта опция позволяет установить каталог, в котором находятся конфигурационные файлы всех CGI-программ. | ||
| + | |||
| + | Если опция не была указана в командной строке <tt>configure</tt>, предполагается значение по | ||
| + | умолчанию, равное <tt>../cgi-data</tt>. Местоположение каталога конфигурационных файлов, | ||
| + | задаваемого опцией <tt>--enable-cgi-conf-dir</tt> может быть как абсолютным, так и относительным путём. В случае относительного пути точкой отсчёта является каталог, в котором находится сама CGI-программа <tt>master</tt>. Для этого используется переменная окружения | ||
| + | <tt>SCRIPT_FILENAME</tt>, устанавливаемая веб-сервером при запуске CGI-программы. | ||
| + | |||
| + | Таким образом, если, например, CGI-программы располагаются в каталоге | ||
| + | <tt>/home/httpd/cgi-bin</tt>, то при значении пути к конфигурационным файлам | ||
| + | <tt>../cgi-data</tt>, конфигурационные файлы CGI-программ должны располагаться в каталоге | ||
| + | <tt>/home/httpd/cgi-data</tt>. | ||
| + | |||
| + | Конфигурационный файл программы <tt>master</tt> может называться <tt>master.cfg</tt> или | ||
| + | <tt>master-</tt>''N''<tt>.cfg</tt>, где ''N'' — номер турнира (см. ниже), но и конфигурационный файл вообще | ||
| + | может отсутствовать. Для этого необходимо, чтобы все настройки, которые считываются из | ||
| + | конфигурационного файла, были установлены при компиляции системы с помощью опций | ||
| + | скрипта <tt>[[configure]]</tt>. | ||
| + | |||
| + | Чтобы конфигурационный файл программы <tt>master</tt> был необязательным, необходимо, | ||
| + | чтобы программа <tt>master</tt> была открыта для доступа со всех IP-адресов (дополнительные | ||
| + | ограничения, конечно, могут задаваться для каждого турнира в конфигурационном файле турнира). Кроме того, при компиляции системы <tt>ejudge</tt> необходимо указание опций <tt>--enable-charset</tt>, <tt>--enable-socket-path</tt> и <tt>--enable-conf-dir</tt>. | ||
| + | |||
| + | При запуске программы <tt>master</tt> вначале определяется идентификатор турнира. Идентификатор турнира определяется либо по параметру запроса <tt>contest_id</tt>, либо по имени, | ||
| + | под которым вызывается программа master, причем параметр запроса <tt>contest_id</tt> имеет | ||
| + | приоритет. В случае, когда идентификатор турнира не определен или определен по параметру запроса <tt>contest_id</tt>, всегда используется конфигурационный файл <tt>master.cfg</tt>. Если | ||
| + | конфигурационный файл не существует, то будут использоваться значения по умолчанию. | ||
| + | |||
| + | Определение идентификатора турнира по имени программы является устаревшим механизмом и не рекомендуется для использования. В этом случае программа <tt>master</tt> должна называться <tt>master-</tt>''N'', где ''N'' — десятичное число-идентификатор турнира. Этого можно добиться созданием символических или жестких ссылок в каталоге CGI-программ веб-сервера. | ||
| + | |||
| + | Тогда сначала будет сделана попытка считать конфигурационный файл <tt>master-<tt>''N''<tt>.cfg</tt>, | ||
| + | затем, если эта попытка завершилась неудачно, будет сделана попытка считать конфигурационный файл <tt>master-</tt>''N′''<tt>.cfg</tt>, где ''N′'' — это число, напечатанное с 6 десятичными знаками, | ||
| + | включая незначащие нули, например, <tt>master-000001.cfg</tt>. Если это попытка завершилась неудачно, будет сделана попытка считать конфигурационный файл <tt>master-</tt>''N′′''<tt>.cfg</tt>, где ''N′′'' — число, напечатанное без ведущих незначащих нулей. Наконец, будет сделана попытка считать конфигурационный файл <tt>master.cfg</tt>, и в случае неуспеха будут использоваться | ||
| + | значения по умолчанию. | ||
Revision as of 10:35, 22 February 2012
Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/master.cfg/Общая информация
Данный конфигурационный файл используется CGI-программой master. Содержимое файла прочитывается один раз при старте CGI-программы, то есть каждый раз, когда кто-либо посылает HTTP/HTTPS-запрос к серверу, приводящий к запуску программы master.
Местоположение конфигурационного файла определяется на этапе компиляции системы ejudge с помощью опции --enable-cgi-conf-dir скрипта configure. Эта опция позволяет установить каталог, в котором находятся конфигурационные файлы всех CGI-программ.
Если опция не была указана в командной строке configure, предполагается значение по умолчанию, равное ../cgi-data. Местоположение каталога конфигурационных файлов, задаваемого опцией --enable-cgi-conf-dir может быть как абсолютным, так и относительным путём. В случае относительного пути точкой отсчёта является каталог, в котором находится сама CGI-программа master. Для этого используется переменная окружения SCRIPT_FILENAME, устанавливаемая веб-сервером при запуске CGI-программы.
Таким образом, если, например, CGI-программы располагаются в каталоге /home/httpd/cgi-bin, то при значении пути к конфигурационным файлам ../cgi-data, конфигурационные файлы CGI-программ должны располагаться в каталоге /home/httpd/cgi-data.
Конфигурационный файл программы master может называться master.cfg или master-N.cfg, где N — номер турнира (см. ниже), но и конфигурационный файл вообще может отсутствовать. Для этого необходимо, чтобы все настройки, которые считываются из конфигурационного файла, были установлены при компиляции системы с помощью опций скрипта configure.
Чтобы конфигурационный файл программы master был необязательным, необходимо, чтобы программа master была открыта для доступа со всех IP-адресов (дополнительные ограничения, конечно, могут задаваться для каждого турнира в конфигурационном файле турнира). Кроме того, при компиляции системы ejudge необходимо указание опций --enable-charset, --enable-socket-path и --enable-conf-dir.
При запуске программы master вначале определяется идентификатор турнира. Идентификатор турнира определяется либо по параметру запроса contest_id, либо по имени, под которым вызывается программа master, причем параметр запроса contest_id имеет приоритет. В случае, когда идентификатор турнира не определен или определен по параметру запроса contest_id, всегда используется конфигурационный файл master.cfg. Если конфигурационный файл не существует, то будут использоваться значения по умолчанию.
Определение идентификатора турнира по имени программы является устаревшим механизмом и не рекомендуется для использования. В этом случае программа master должна называться master-N, где N — десятичное число-идентификатор турнира. Этого можно добиться созданием символических или жестких ссылок в каталоге CGI-программ веб-сервера.
Тогда сначала будет сделана попытка считать конфигурационный файл master-N.cfg, затем, если эта попытка завершилась неудачно, будет сделана попытка считать конфигурационный файл master-N′.cfg, где N′ — это число, напечатанное с 6 десятичными знаками, включая незначащие нули, например, master-000001.cfg. Если это попытка завершилась неудачно, будет сделана попытка считать конфигурационный файл master-N′′.cfg, где N′′ — число, напечатанное без ведущих незначащих нулей. Наконец, будет сделана попытка считать конфигурационный файл master.cfg, и в случае неуспеха будут использоваться значения по умолчанию.