Система управления контентом CAIRO

Установка и настройка

Виктор Грищенко


Содержание

1. Системные требования
2. Установка и настройка
2.1. Установка файлов системы
2.2. Использование мастера настроек
2.3. Ручная настройка системы
3. Активация системы
4. Начало работы
5. Установка WYSIWYG редактора

Список иллюстраций

1. Лицензионное соглашение
2. Проверка системных требований
3. Основные настройки системы
4. Настройки базы данных
5. Настройка графической подсистемы
6. Предложение активировать систему

Список таблиц

1. Минимальные аппаратные требования системы Cairo
2. Требования системы Cairo к программному обеспечению

Аннотация

Система Cairo может быть установлена на любые операционные системы, поддерживающие работу веб-сервера Apache и языка PHP. Для установки требуется возможность создавать на сервере виртуальные хосты, базы данных и иметь возможность управлять файлами. В данном документе пошагово рассматривается процесс установки и настройки системы.

1. Системные требования

Система Cairo не предъявляет высоких требований к аппаратным ресурсам.

Таблица 1. Минимальные аппаратные требования системы Cairo

Тип аппаратурыХарактеристика
ПроцессорPentium Pro 200MHz
Оперативная память64 Mb
Дисковое пространство20 Mb

Замечание

Система, установленная на аппаратуру с указанными характеристиками, не сможет нести большой нагрузки, но для тестирования и разработки такого оборудования вполне достаточно.

Требования к программному обеспечению сервера приведены ниже.

Таблица 2. Требования системы Cairo к программному обеспечению

Программный продуктПримечания
Операционная система

Любая операционная система, на которой может быть установлен веб-сервер Apache.

К ним относятся большинство UNIX-подобных систем и все версии Windows®.

MySQL >=3.23.56Cairo версии 1.7.2 не поддерживает работу MySQL Server v5.x.
Apache >=1.3.xВ версии 1.x.x поддерживается только веб-сервер Apache.
Модуль Apache mod_rewriteМодуль mod_rewrite позволяет осуществлять преобразование URL.
gettextПоддержка gettext необходима для интернационализации интерфейса администратора.
Локаль CP-1251Наличие локали необходимо для корректного вывода дат, чисел, денежных единиц и установки правильной кодировки документа.
GD >=1.6.1Библиотека GD используется для работы с графикой, создания эскизов изображений и т.п.
PHP >=4.2.2

PHP должен включать поддержку gettext, базы данных MySQL, поддержку gzip, GD и PCRE (для работы с PERL-совместимыми регулярными выражениями).

Zend Optimizer

Zend Optimizer является утилитой, распространяемой бесплатно компанией Zend.

Скачать пакет можно по адресу http://www.zend.com/store/products/zend-optimizer.php.

ImageMagick >=5.4.7Из пакта ImageMagick используется только утилита convert, которая позволяет обрабатывать изображения на стороне сервера. Наличие данного пакета рекомендуется, однако, не является обязательным.
gzipАрхивирование используется для сжатия потока данных, передаваемых между клиентом и сервером
bzip2

Утилита bzip2 необходима для установки системы.

Только для UNIX-подобных систем.

tar

Утилита tar необходима для установки системы.

Только для UNIX-подобных систем.

zipИспользуется для работы с файлами импорта.
Sendmail

Используется для отправки почтовых сообщений.

Наличие почтового сервера опционально, так как почта может отправляться через специальные почтовые сервера.

opensslИспользуется для работы с сертификатами Cairo.

Автоматически проверить настройки сервера на совместимость можно с помощью скрипта check_server.php. Для этого необходимо после копирования файлов системы в корень дерева каталогов веб-сервера открыть в браузере URL http://example.com/_startup/check_server.php, где example.com следует поменять на имя используемого сервера.

Скрипт check_server.php может использоваться и без установки файлов системы. Для этого достаточно скопировать его из дистрибутива в любое место дерева файлов веб-сервера.

2. Установка и настройка

В данном разделе Описывается два типа установки системы - с помощью мастера и вручную. Мастер появится при первом открытии интерфейса администратора (если настройки не были внесены вручную). Он позволяет проверить установленное на сервере программное обеспечение на соответствие требованиям системы, определить ее основные настройки и сгенерировать запрос на активацию. Но, в некоторых случаях, может дополнительно потребоваться редактирование файлов настроек вручную. Такая настройка описывается в последней части раздела.

Далее в описании используются команды среды UNIX. В случае установки системы на других платформах описанные операции можно выполнить любым другим доступным способом.

2.1. Установка файлов системы

2.1.1. Шаг 1: Распаковка архива

Архив с дистрибутивом системы выгружается на сервер в любое доступное место. Для распаковки архива на сервере должна быть установлена утилита unzip.

Важно

Не рекомендуется помещать архив внутри дерева DocumentRoot веб-сервера.

Распаковываем архив следующей командой:

unzip cairo-<Редакция>-1.7.2.zip

Где "Редакция" соответствует вашей версии дистрибутива. Существует три редакции:

  • standard - полнофункциональная версия

  • devel - версия для разработчика

  • trial - триальная версия системы

Теперь необходимо скопировать файлы системы в корневой каталог веб-сервера.

cd cairo-<Редакция>

cp -R * <DocumentRoot>

Важно

Система может устанавливаться только в корневой каталог веб-сервера.

2.1.2. Шаг 2: Установка прав на каталоги

Подсказка

При установке системы на платформу Windows® данный раздел можно не рассматривать.

Большая часть данных Cairo хранится в базе данных, но некоторые данные, в частности, изображения, видеоролики и прочие файлы хранятся непосредственно в файловой системе, что позволяет значительно разгрузить сервер. Поэтому на некоторые каталоги должны быть установлены такие права, которые позволят веб-серверу записывать в них файлы.

Следует проявлять осторожность при установке прав на каталоги. Установка слишком широких прав может привести к тому, что такие каталоги станут источником угрозы безопасности веб-ресурса.

cd <DocumentRoot>

chmod 770 tmp var/uploaded var/cache var/frmtext-files var/config

Замечание

Прав 770 может быть не достаточно для работы системы, например, если пользователь, от которого работает веб-сервер, не принадлежит используемой группе. В этом случае необходимо установить права 777, но такие права на каталоги могут использоваться для взлома системы.

2.1.3. Шаг 3: Подготовка базы данных

На этом этапе необходимо создать базу данных, с которой будет работать Cairo и установить в эту базу дамп-заготовку.

В каталоге <DocumentRoot>/dump хранится файл cairo-dummy.sql, который содержит начальную структуру данных. Импортировать этот файл в базу данных можно несколькими способами. Через командную строку это можно сделать, выполнив следующую команду:

mysql -h <адрес сервера БД> -u <имя пользователя> -p <имя БД> < dump/cairo-dummy.sql

Установленная база данных содержит лишь пустые таблицы с базовой информацией о системе. В последствии этот же файл может использоваться для создания новых проектов.

2.2. Использование мастера настроек

Мастер настроек предоставляет визуальный интерфейс для определения настроек системы. Он активируется при первом запуске системы в случае, если не определены настройки. В этом подразделе подробно рассматривается каждый шаг мастера и описывается назначение и смысл запрашиваемых параметров.

На первом шаге мастер предлагает ознакомиться с лицензионным соглашением. Работу можно будет продолжить только после того, как будет отмечен переключатель "Я принимаю условия лицензионного соглашения".

Рисунок 1. Лицензионное соглашение

Лицензионное соглашение

На втором шаге мастер проверяет соответствие программного обеспечения, установленного на сервере системным требованиям Cairo. В случае, если находится несоответствие какому-либо требованию, то его строка помечается красным крестиком. Процесс настройки не может быть продолжен до тех пор, пока не будут удовлетворены все зависимости.

Рисунок 2. Проверка системных требований

Проверка системных требований

Далее мастер предлагает ввести основные настройки системы.

Географически сервер с установленной Cairo может находиться в часовом поясе отличном от часового пояса администратора ресурса. Поэтому время, выводимое в часовом поясе сервера, не будет таким для администратора. Например, администратор находится в часовом поясе +0200, а сервер - +0300. Если он создаст сущность в 13:00, то на сервере в этот момент будет 14:00, и в информацию о сущности будет записано неверное с точки зрения администратора время. Поэтому необходима корректировка значений дат и времени в соответствии с часовым поясом администратора. Для этого и используется параметр "Часовой пояс". При его корректном определении все временные параметры будут корректироваться при вводе и перед выводом.

По умолчанию, для определения каталога установки используется значение переменной окружения веб-сервера DOCUMENT_ROOT. Изменять его не рекомендуется.

Локаль определяет язык и кодировку, в которой будет работать универсальный веб интерфейс. Наиболее подходящим значением будет ru_RU.CP1251.

Имя сервера по умолчанию. Под этим параметром понимается имя, по которому будет доступен веб-интерфейс администратора. Позже для различных ресурсов можно будет определить и другие имена, но по адресу, определенному в этом параметре можно будет получить доступ ко всем ресурсам, зарегистрированным в системе.

E-mail администратора выводится в тексте сообщений об ошибках системы, а E-mail робота используется при рассылке сообщений системой администрирования.

Рисунок 3. Основные настройки системы

Основные настройки системы

На следующем шаге мастер предлагает определить настройки базы данных. В отличие от предыдущего этапа эти настройки автоматически определены быть не могут. Следует иметь в виду, что база данных уже должна существовать и в нее должен быть установлен дамп из файла <DocumentRoot>/dump/cairo-dummy.sql.

Рисунок 4. Настройки базы данных

Настройки базы данных

Далее мастер предлагает выбрать графическую подсистему, с помощью которой интерфейс администрирования будет обрабатывать изображения. Возможны два варианта: встроенная библиотека GD и внешние утилиты, входящие в дистрибутив ImageMagic. Рекомендуется использовать ImageMagic, поскольку в этом случае выше качество обработанных изображений и возможности обработки не ограничены объемом оперативной памяти, доступной PHP. Если вы решили использовать ImageMagic, то необходимо явно указать полный путь к утилите convert. На *nix-подобных системах его можно узнать с помощью следующей команды:

which convert

Если же вы решили использовать библиотеку GD, то необходимо указать ее версию.

Рисунок 5. Настройка графической подсистемы

Настройка графической подсистемы

После определения графической подсистемы мастер создает файлы настроек и предлагает активировать систему. Для активации системы предлагается сохранить файл-запрос и отправить его на E-mail . В ответ Вам будет выслан файл активации cairo.lcs, который необходимо записать в каталог <DocumentRoot>/etc/.

Рисунок 6. Предложение активировать систему

Предложение активировать систему

После выполнения всех вышеописанных операций система готова к использованию. В следующем разделе описывается процесс ручной настройки системы без использования мастера.

2.3. Ручная настройка системы

Настроить систему можно и без мастера. Для этого необходимо вручную изменить файлы конфигурации. Полное описание параметров настройки дано в справочном руководстве "Система управления контентом CAIRO: Файлы настройки". Здесь же приведем минимальные настройки, которые должны быть установлены для работы системы. Быстрая настройка предполагает изменение только двух файлов: /etc/core.ini и /etc/login.ini.

Внимание

В файлах настройки все мета-имена, заключенные в угловые скобки, должны быть заменены соответствующими значениями или удалены, если допускается пустое значение параметра.

Файл /etc/core.ini отвечает за настройку ядра системы и настройки веб-интерфейса, общие для всех ресурсов. После установки системы в каталоге <DocumentRoot>/etc будут распологаться шаблоны всех файлов настроек.

В первую очередь необходимо определить каталоги, в которых располагаются различные компоненты системы. Для этого в файле /etc/core.ini необходимо заменить строки "<DocumentRoot>" на полный путь к каталогу, в который была установлена система. Чтобы определить данное значение, необходимо запустить через браузер PHP-файл, предварительно создав и разместив его в корневом каталоге веб-сервера. Файл должен содержать следующий код:

  1. <?php
  2. echo $_SERVER['DOCUMENT_ROOT'];
  3. ?>

Далее следует определить временную зону клиента. Часовой пояс клиента используется для автоматического пересчета значений полей, связанных с датой и временем. Это может понадобиться, если клиент и сервер находятся в разных временных зонах. Часовой пояс задается смещением от Гринвича в часах. Например, для Украины правильным значением будет "+0200", а для России - "+0300".

Веб-интерфейс администратора Cairo может быть переведен на разные языки. В настоящий момент доступны английский и русский переводы. Чтобы определить, какой перевод следует использовать, необходимо установить соответствующую локаль. Локаль задается параметром locale.LANG. Для подключения русского языка в кодировке windows-1251 необходимо установить значение "ru_RU.CP1251".

Внимание

Локаль должна быть установлена на сервере. Если локаль не установлена, обратитесь к администратору.

Все файлы интернационализации находятся в каталоге <DocumentRoot>/locale/. Путь к этому каталогу не может быть изменен. Структура каталога стандартна для библиотеки gettext, ее подробное описание можно найти в документации к данной библиотеке.

Далее необходимо определить, каким способом в системе будут создаваться эскизы изображений. За это отвечает параметр image.thumb_handler. Данный параметр может принимать одно из двух значений:

  • ImageMagic - Будет использоваться утилита convert из пакета ImageMagic (только для UNIX-подобных систем);

  • GD - Будет использоваться стандартная библиотека PHP для работы с графикой.

Библиотека GD в большинстве случаев установлена на сервере, но эскизы, получаемые при ее применении, имеют низкое качество. Качество изображений существенно повышается при использовании пакета ImageMagic. Выбирая ImageMagic, убедитесь, что данный пакет установлен на сервере.

При выборе ImageMagic необходимо определить полный путь к утилите convert, которая будет использоваться системой для обработки изображений. Данный путь определяется в параметре image.convert. Его можно узнать, выполнив в консоли сервера команду:

which convert

Если используется библиотека GD, необходимо задать ее версию в параметре image.gd_ver.

В секции utils задаются полные пути к системным утилитам (zip, unzip, mysqldump), которые использует Cairo в своей работе. Эти утилиты необходимы для организации импорта данных в систему. Если импорт использоваться не будет, то значения параметров в секции utils можно оставить пустыми.

Последним этапом настройки файла /etc/core.ini является определение адреса электронной почты веб-мастера, а также адреса, с которого будут отсылаться все письма, генерируемые системой.

Далее следует настроить параметры ресурса, с которым будет работать универсальный веб-интерфейс администратора. Интерфейс администратора можно настроить таким образом, чтобы он работал с несколькими ресурсами. Для этого в файле /etc/login.ini для каждого ресурса должен быть создан описывающий его раздел.

Замечание

Файлы интерфейса ресурса располагаются вне дерева интерфейса администратора Cairo. Для каждого интерфейса должен создаваться отдельный виртуальный хост с корнем в отдельном каталоге.

Каждый раздел имеет следующий вид:

[<Имя ресурса>]
dbhost        = <Имя сервера БД>
dbuser        = <Имя пользователя БД>
dbpasswd      = <Пароль к БД>
dbname        = <Имя БД>
dbcharset     = <Кодировка для работы с БД, можно оставить пустой>
dbversion     = <Версия сервера БД>
authhost      = <Имя хоста, где располагается интерфейс администрирования>
basedir       = <DocumentRoot для ресурса>
uploaddir     = <Каталог, в котором ресурс хранит загруженные изображения>
cachedir      = <Каталог кэша ресурса>
frmtext_files = <Каталог файлов для форматированного текста>
httphost      = <Адрес веб-ресурса>
locale        = <Локаль ресурса, например ru_RU.CP1251>
auth_user     = <Допустимые пользователи>
auth_group    = <Допустимые группы>

Имя ресурса отображается в списке выбора ресурсов формы авторизации веб-интерфейса Cairo. Оно должно состоять из латинских букв и цифр, может содержать пробелы. Не рекомендуется использовать имена ресурсов длиннее двадцати символов.

Настройки базы данных начинаются с символов db. Назначение большей части настроек понятно из их названий. Следует остановиться только на dbcharset и dbversion.

Параметр dbcharset может использоваться в случае, когда необходимо явно указать кодировку, в которой сервер должен отдавать данные. Часто, на сервере установлена кодировка по умолчанию, и данный параметр можно оставить пустым.

Параметр dbversion используется для определения типа вызова, который устанавливает кодировку БД. Значение должно записываться в параметр в том формате, в котором оно возвращается при выполнении следующего запроса:

SHOW VARIABLES LIKE "version";

Параметр authhost содержит имя хоста, с которого осуществляется доступ к интерфейсу администратора описываемого ресурса. Значение параметра используется для разделения доступа к ресурсам по доменному имени. Представим себе следующую ситуацию: на сервере установлен один экземпляр системы Cairo, под управлением которой работает множество ресурсов данных. На странице авторизации интерфейса администратора Cairo в выпадающем списке "Ресурс" выводится перечень всех доступных ресурсов данных. Необходимо организовать работу двух клиентов: Алисы и Боба. При этом система должна быть настроена так, чтобы в выпадающем списке ресурсов Алиса видела только свои ресурсы, а Боб - только свои. Чтобы решить поставленную задачу, следует создать виртуальный хост для интерфейса администратора, например, auth.cairo, и добавить к нему два псевдонима (alice.auth.cairo и bob.auth.cairo). После этого в настройках каждого ресурса данных Алисы в authhost записывается значение alice.auth.cairo, а для ресурса Боба соответственно bob.auth.cairo. В результате на странице авторизации, доступной по адресу http://alice.auth.cairo/auth/ в списке ресурсов будут доступны только ресурсы Алисы, а на странице http://bob.auth.cairo/auth/ - только ресурсы Боба.

Интерфейс администратора должен иметь доступ к каталогам, в которых хранятся файлы данных веб-ресурса и его кэш. В частности, это необходимо для корректной работы с изображениями, загружаемыми на сервер. Каталог, в котором хранятся файлы данных веб-ресурса, должен быть записан в параметре uploaddir. Обычно, этим каталогом является [DocumentRoot ресурса]/var/uploaded/. Аналогично указывается каталог кэша: [DocumentRoot ресурса]/var/cache/.

Отдельно определяется каталог, в котором хранятся изображения для поля типа "Форматированный текст". Параметр используется для подключаемых WYSIWYG-редакторов, которые позволяют работать с изображениями. Если использовать WYSIWYG-редактор не планируется или он не поддерживает работу с изображениями, то данный параметр можно оставить пустым. Если же параметр не пустой, то следует обеспечить взаимодействие WYSIWYG-редактора с ним.

Кроме адресов интерфейсов администрирования необходимо указать и адреса самих веб-ресурсов в параметре httphost. Например, если сайт Алисы имеет URL http://www.alice.cairo, то в параметр httphost должно быть занесено значение www.alice.cairo. В случае если у сайта Алисы несколько доменных имен, например, http://www.alice.cairo и http://alice.cairo, то необходимо выбрать одно, которое будет использоваться в интерфейсе администратора.

Локаль ресурса будет использоваться для интернационализации интерфейса и других настроек, уникальных для страны пользователя. Если значение локали не определено, то оно будет использоваться значение из файла) /etc/core.ini.

Параметры auth_user и auth_group определяют, какие пользователи и группы имеют право доступа к интерфейсу администратора Cairo. Значения параметров - списки идентификаторов пользователей и групп пользователей, разделенные запятой. Если параметры не заполнены, то доступ в систему администрирования будет иметь только пользователь root.

3. Активация системы

Последним этапом установки системы является получение лицензионного ключа. Лицензионный ключ представляет собой текстовый файл cairo.lcs, который должен находиться в каталоге <DocumentRoot>/etc.

Для получения файла ключа необходимо отправить запрос по адресу . Запрос должен включать файл, который генерируется скриптом http://example.com/_startup/license_request.php.

4. Начало работы

Внимание

В целях безопасности, после установки системы каталоги <DocumentRoot>/_startup и <DocumentRoot>/_doc должны быть удалены.

После установки лицензионного ключа система готова к работе. Введите в адресной строке браузера URL, который был указан при создании виртуального хоста (например, http://example.com).

Перед началом работы необходимо пройти авторизацию. По умолчанию в системе действует одна учетная запись для пользователя root. Для авторизации введите в форму следующие данные:

Login: root

Password: admin

Из выпадающего списка выберите имя ресурса данных.

Внимание

После авторизации обязательно измените пароль для учетной записи root через интерфейс администратора Cairo. Для этого воспользуйтесь ссылкой на имени авторизированного пользователя, которое выводится в правом верхнем углу экрана.

После успешной авторизации можно начинать разработку информационного ресурса. Руководство по созданию простейшего ресурса содержится в документе "Система управления контентом CAIRO: Как начать работать".

5. Установка WYSIWYG редактора

WYSIWYG редакторы являются удобным инструментом для форматирования текста. Они предоставляют множество функций текстовых процессоров, к которым привык пользователь. Система Cairo поставляется без WYSIWYG редактора, однако, в ней предусмотрена возможность для подключения любого редактора, как свободно распространяемого, так и коммерческого.

Для работы с форматированным текстом используется тип поля fldFrmText. Если WYSIWYG-редактор не подключен, данное поле в режиме редактирования представляется простым текстовым полем, которое пропускает теги HTML. При выводе значений теги не экранируются. В случае подключения WYSIWYG редактора текстовое поле заменяется редактируемой областью и позволяет редактировать текст в "визуальном" режиме.

Продемонстрируем установку WYSIWYG редактора на примере открытого продукта FCKeditor.

В первую очередь необходимо скачать последнюю версию редактора с официального сайта (www.fckeditor.net). Лучше использовать стабильные версии, так как более новые, но нестабильные релизы могут содержать большое количество ошибок.

Полученный архив необходимо распаковать и его содержимое скопировать в каталог [DOCUMENT_ROOT]/usr/javascript/fckeditor.

Теперь нужно определить шаблон, который будет выводить форму редактирования поля. Шаблон редактирования поля "Форматированный текст" находится в файле [DOCUMENT_ROOT]/usr/skins/default/fields/frmtext_show_edit.tpl.php. Стандартный файл шаблона следует заменить кодом, приведенным ниже:

  1. <?php
  2. /**
  3. * Шаблон поля "Форматированный текст", использующего FCKeditor
  4. *
  5. * @author  Victor Grischenko <victor@zveno.com.ua>
  6. * @since   10.04.2006
  7. */
  8. if (!defined("FRMTEXT_JAVASCRIPT")) {
  9.     define("FRMTEXT_JAVASCRIPT", 1);
  10.  
  11. ?>
  12. <script type="text/javascript"
  13.     src="/<?=$GLOBALS["_RES_PARAMS"]['name']?>/javascript/fckeditor/fckeditor.js"></script>
  14. <script type="text/javascript">
  15. function frmtext_precheck(fieldName) {
  16.  
  17. }
  18. </script>
  19. <?
  20. }
  21. ?>
  22. <script type="text/javascript">
  23. <!--
  24. var sBasePath = '/<?=$GLOBALS["_RES_PARAMS"]['name']?>/javascript/fckeditor/' ;
  25.  
  26. var oFCKeditor = new FCKeditor( '<?=$this->params['field_name']?>' ) ;
  27.  
  28. oFCKeditor.BasePath = sBasePath ;
  29.  
  30. oFCKeditor.Value    = '<?=CUtils::quotenl(addslashes($value))?>' ;
  31.  
  32. oFCKeditor.Create() ;
  33.  
  34. //-->
  35. </script>

Функция frmtext_precheck вызывается перед проверкой данных. В ней можно осуществлять операции, которые должны быть выполнены на стороне клиента перед проверкой данных, которая производится скриптом, генерируемым автоматически.

Аналогичным образом можно подключить любой другой WYSIWYG редактор.