Общий формат файла |
Конфигурационные файлы в системе FLUIdS имеют жестко заданный формат, напоминающий тот, который используется в среде MS Windows. Он состоит из набора директив, разделенных на группы по смысловому или функциональному признаку. Каждая директива имеет вид
где имя - имя директивы, которое не чуствительно к регистру букв, а значение - это символьная строка, имеющая определенную смысловую нагрузку. Присутствие знака равенства = в написании директивы обязательно, а количество пробелов между ним и именем директивы или значением не существенно.
Определяемое в директиве значение может состоять из нескольких элементов. Разделителями элементов служат пробелы. Элементы строки могут браться в двойные кавычки, например:
В этой директиве в качестве значения задано два элемента - это стока .koi8-r и пустая строка. В подобных директивах двойная кавычка рассматривается как специальный символ, начинающий и заканчивающий элемент строки. Если указана начинающая двойная кавычка, а заканчивающая отсутствует, то директива считается некорректной, и при обработке конфигурационного файла будет выдано соответствующее сообщение.
Использование двойных кавычек бывает необходимо, когда Вы хотите задать в директиве пустую строку или когда элемент строки содержит пробел:
Если есть необходимость указания внутри элемента строки самого символа ", то его нужно заэкранировать, т.е. предварить символом \ (обратная косая черта):
Впрочем, \ может экранировать любые символы, в том числе и пробелы. Сам символ \ при написании в директиве также необходимо экранировать (если он, конечно, не используется как экранирующий):
Этой директивой программе flindex
дается указание не индексировать документы в директории
Необходимость экранирования самого символа \ (обратный слэш) представляет собой некоторое неудобство, в особенности для пользователей операционных систем MSDOS, MS Windows 95/98/NT и OS/2, так как при указании имен файлов и директорий этот символ приходится "удваивать":
Вина за это неудобство целиком лежит на корпорации Microsoft, которая несколько десятилетий назад весьма опрометчиво выбрала в качестве символа разделителя имен директорий обратный слэш, а не прямой. К тому моменту в мире уже существовал целый ряд операционных сред, в которых повсеместно подобным символом служил прямой слэш, а обратный использовался исключительно в целях экранирования. Microsoft же совместила эти функции в символе \, использовав прямой слэш для задания опций при вызове программ. Результаты того решения мы вынуждены ощущать до сих пор...
Как уже указывалось, директивы делятся на группы, образуя так называемые конфигурационные разделы. Каждый раздел начинается со строчки:
где имя - это название раздела. Другими словами, строчка, начинающаяся с открывающей квадратной скобки и содержащая соответствующую закрывающую скобку, образует начало раздела. Поэтому общий формат раздела в конфигурационном файле выглядит так:
[ИмяРаздела] Директива1 = Значение1 Директива2 = Значение2 . . . ДирективаN = ЗначениеN
Порядок следования разделов в конфигурационном файле не имеет значения. Кроме того, некоторые разделы (например, Replace или Index в конфигурационном файле CGI модуля) можно повторять, передавая в них разную информацию.
Для каждого отдельно взятого раздела определен свой, уникальный набор директив. В общем случае порядок расположения директив в разделе не имеет значения, но из этого правила бывают важные исключения, которые специально оговариваются.
Каждую директиву в разделе можно повторять, задавая для нее разные значения. Реакция системы на это будет зависеть от определения директивы. Если для нее предусмотрен ряд значений, то они будут собраны в специальную коллекцию, если же только одно значение, то в результате будет использовано то, которое задано самым последним.
Совсем не обязательно в конфигурационном разделе выписывать все определяемые для него директивы, более того, раздел может быть даже пустым, т.е. заявленным в конфигурационном файле, но без директив. Такие разделы игнорируются системой. Сами разделы могут отсутствовать в конфигурационном файле, если в них нет необходимости.
Замечание: если в самом начале конфигурационного файла присутствуют директивы без объявления раздела, то они игнорируются.
Комментарии |
Пустые строчки в конфигурационном файле игнорируются системой. Если строчка начинается с символа # (решетка), то она считается комментарием и тоже игнорируется.
Более того, если конфигурационный раздел объявлен неполностью, т.е. в строчке с его именем отсутствует закрывающая квадратная скобка:
то он целиком, вместе со всеми своими директивами, будет рассматриваться как комментарий.
Вернее сказать, что любая строчка конфигурационного файла, расположенная ниже подобной строчки и не являющаяся объявлением конфигурационного раздела, будет проигнорирована системой.
То есть, вставив в нужном месте строчку, состоящую из одного символа [, можно перевести в комментарий все ниже расположенные директивы. Это правило, впрочем, действует только до объявления последующего конфигурационного раздела. Например:
. . . [defaults] . . . replace = beginning "/www/docs/" "http://www.your-host.ru/" [ replace = ending .koi8-r "" replace = ending index.html "" [job] charset = koi *.koi8-r . . .
Здесь директивы
Сообщения об ошибках |
При обработке конфигурационного файла система FLUIdS может выдать сообщение об ошибке, сигнализирующее о том, что в нем нарушены одно или несколько вышеописанных правил.
Таких сообщений всего три:
Директива, вызвавшая сообщение об ошибке, будет также проигнорирована системой.
На предыдущую страницу | valera@sbnet.ru |