|
|
Line 1: |
Line 1: |
− | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[register.xml]]/[[register.xml:info|Общая информация]]
| |
| | | |
− | Данный конфигурационный файл используется CGI-программой <tt>[[register]]</tt>. Содержимое
| |
− | файла прочитывается один раз при старте CGI-программы, то есть каждый раз, когда ктолибо посылает HTTP/HTTPS-запрос к серверу, приводящий к запуску программы register.
| |
− |
| |
− | Местоположение конфигурационного файла определяется на этапе компиляции системы
| |
− | ejudge с помощью опции <tt>--enable-cgi-conf-dir</tt> скрипта <tt>[[configure]]</tt>. Эта опция позволяет установить каталог, в котором находятся конфигурационные файлы всех CGI-программ.
| |
− |
| |
− | Если опция не была указана в командной строке configure, предполагается значение по
| |
− | умолчанию, равное <tt>../cgi-data</tt>. Местоположение каталога конфигурационных файлов,
| |
− | задаваемого опцией <tt>--enable-cgi-conf-dir</tt> может быть как абсолютным, так и относительным путём. В случае относительного пути точкой отсчёта является каталог, в котором находится сама CGI-программа <tt>[[register]]</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>register</tt> может называться <tt>register.xml</tt> или
| |
− | <tt>register-</tt>''N''<tt>.xml</tt>, где ''N'' — номер турнира (см. ниже), но и конфигурационный файл вообще
| |
− | может отсутствовать. Для этого необходимо, чтобы все настройки, которые считываются из
| |
− | конфигурационного файла, были установлены при компиляции системы с помощью опций
| |
− | скрипта <tt>[[configure]]</tt>.
| |
− |
| |
− | Чтобы конфигурационный файл программы <tt>register</tt> был необязательным, необходимо,
| |
− | чтобы программа <tt>register</tt> была открыта для доступа со всех IP-адресов (дополнительные
| |
− | ограничения, конечно, могут задаваться для каждого турнира в конфигурационном файле турнира). Кроме того, при компиляции системы <tt>ejudge</tt> необходимо указание опций <tt>--enable-charset</tt>, <tt>--enable-socket-path</tt> и <tt>--enable-conf-dir</tt>.
| |
− | Если конфигурационный файл не найден или не может быть открыт, используется следующий встроенный конфигурационный файл по умолчанию:
| |
− | <?xml version="1.0" ?>
| |
− | <register_config>
| |
− | <access default="allow"/>
| |
− | </register_config>
| |
− | Опции <tt>--enable-charset</tt>, <tt>--enable-socket-path</tt> и <tt>--enable-conf-dir</tt>
| |
− | скрипта <tt>[[configure]]</tt> позволяют в этом случае установить значения по умолчанию для
| |
− | остальных необходимых элементов конфигурационного файла.
| |
− |
| |
− | При запуске программы <tt>register</tt> вначале определяется идентификатор турнира. Идентификатор турнира определяется либо по параметру запроса <tt>contest_id</tt>, либо по имени,
| |
− | под которым вызывается программа register, причем параметр запроса <tt>contest_id</tt> имеет
| |
− | приоритет. В случае, когда идентификатор турнира не определен или определен по параметру
| |
− | запроса <tt>contest_id</tt>, всегда используется конфигурационный файл <tt>register.xml</tt>. Если
| |
− | конфигурационный файл не существует, то будут использоваться значения по умолчанию.
| |
− |
| |
− | Определение идентификатора турнира по имени программы является устаревшим механизмом и не рекомендуется для использования. В этом случае программа <tt>register</tt> должна называться <tt>register-</tt>''N'', где ''N'' — десятичное число-идентификатор турнира. Этого можно добиться созданием символических или жестких ссылок в каталоге CGI-программ веб-сервера.Тогда сначала будет сделана попытка считать конфигурационный файл <tt>register-</tt>''N''<tt>.xml</tt>,
| |
− | затем, если эта попытка завершилась неудачно, будет сделана попытка считать конфигурационный файл <tt>register-</tt>''N′''<tt>.xml</tt>, где ''N′'' — это число, напечатанное с 6 десятичными
| |
− | знаками, включая незначащие нули, например, <tt>register-000001.xml</tt>. Если это попытка
| |
− | завершилась неудачно, будет сделана попытка считать конфигурационный файл <tt>register-</tt>''N′′''<tt>.xml</tt>, где ''N′′'' — число, напечатанное без ведущих незначащих нулей. Наконец, будет
| |
− | сделана попытка считать конфигурационный файл <tt>register.xml</tt>, и в случае неуспеха
| |
− | будут использоваться значения по умолчанию.
| |