Несмотря на то, что точное следование инструкции по установке позволит установить систему управления вовсе ничего не понимая, мы считаем что для того, чтобы успешно решать вопросы установки и обслуживания CMS системному администратору лучше знать как все это работает. В этой статье, не углубляясь в детали, описано как все устроено. Эта статья не заменяет инструкцию по установке, а лишь призвана помочь грамотному сисадмину.
Работа фронтзоны сайта
1. Браузер пользователя или другой HTTP клиент обращается к сайту. Предположим, запрашивается корень сайта. Поскольку в DOCUMENT_ROOT отсутствует запрашиваемый документ (нет файлов index.html, default.htm и т.п.), то возникнет ошибка 404 Page not found, либо 403 Directory listing not allowed в зависимости от того, определен ли в настройках веб-сервера корневой документ. Если будет запрошена любая другая страница, все произойдет аналогично.
2. На IIS серверах обработчики 403 и 404 ошибок должны указывать на файл /cgi-bin/get.cgi (см. руководство по установке). Под Apache должен отработать модуль mod_rewrite, который прочитает корневой файл .htaccess и передаст управление на тот же самый скрипт /cgi-bin/get.cgi. Этот скрипт и является основным, который реализует всю логику сайта. Ему будут переданы все параметры и URL, который был набран пользователем в браузере.
3. Скрипт /cgi-bin/get.cgi разбирает полученные параметры и в зависимости от них строит страницу, кладет если нужно её в кэш и отдает клиенту. При этом, скрипты работают с файловой системой, откуда читают и куда пишут данные в разных форматах.
Все. Из этого следует, что:
1. На веб-сервере IIS должны быть определены обработчики ошибок и разрешено выполнение Perl CGI скриптов. На веб-сервере Apache достаточно иметь установленный mod_rewrite.
2. На веб-сервере должно быть доступно выполнение Perl CGI. На Unix Perl интерпретатор почти всегда стоит по умолчанию. На NT его почти всегда нужно ставить дополнительно, обычно это бесплатный ActivePerl с activestate.com, который ставится за минуту через обычный EXE или MSI сетап. В обоих случаях, при отсутствии каких-то модулей (определяется по логам чего именно не хватает) их нужно доустановить стандартным образом: через утилиту cpan (Unix/NT) или скрипт PPM (NT). Более подробно о необходимых модулях и способах установки см. в документации.
3. Скрипт /cgi-bin/get.cgi в папках со скриптами на Unix серверах должны иметь права на выполнение (обычно 755) и быть сохраненными с переносами строк в Unix формате. На NT ни права ни соблюдение переносов строк не нужны.
4. Скриптам должно быть позволено писать данные в те папки, куда что-то пишется. Их перечень и рекомендуемые права описаны в документации.
То есть, это совершенно обычные требования для выполнения Perl CGI скриптов на вебсервере. Соблюдения перечисленных условий будет достаточно чтобы система заработала. Вызов скрипта http://имясайта/cgi-bin/get.cgi при корректно установленной системе эквивалентен обращению к корню сайта http://имясайта и может использоваться для определения работают ли CGI скрипты или управление до них просто не доходит.
Работа админзоны
Есть папка Admin, в ней есть index.html. Вход в админку через http://имясайта/Admin инициирует вызов всех необходимых скриптов. Если права на CGI уже настроены для самого сайта, ничего более делать не нужно. Все скрипты админзоны вынесены в папку /cgi-bin/CMS, все файлы *.cgi в ней должны иметь права на выполнение.