Содержание
Список иллюстраций
Список таблиц
Аннотация
Система Cairo может быть установлена на любые операционные системы, поддерживающие работу веб-сервера Apache и языка PHP. Для установки требуется возможность создавать на сервере виртуальные хосты, базы данных и иметь возможность управлять файлами. В данном документе пошагово рассматривается процесс установки и настройки системы.
Система Cairo не предъявляет высоких требований к аппаратным ресурсам.
Таблица 1. Минимальные аппаратные требования системы Cairo
Тип аппаратуры | Характеристика |
---|---|
Процессор | Pentium Pro 200MHz |
Оперативная память | 64 Mb |
Дисковое пространство | 20 Mb |
Система, установленная на аппаратуру с указанными характеристиками, не сможет нести большой нагрузки, но для тестирования и разработки такого оборудования вполне достаточно.
Требования к программному обеспечению сервера приведены ниже.
Таблица 2. Требования системы Cairo к программному обеспечению
Программный продукт | Примечания |
---|---|
Операционная система | Любая операционная система, на которой может быть установлен веб-сервер Apache. К ним относятся большинство UNIX-подобных систем и все версии Windows®. |
MySQL >=3.23.56 | Cairo версии 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 необходима для установки системы. Только для UNIX-подобных систем. | |
zip | Используется для работы с файлами импорта. |
Sendmail | Используется для отправки почтовых сообщений. Наличие почтового сервера опционально, так как почта может отправляться через специальные почтовые сервера. |
openssl | Используется для работы с сертификатами Cairo. |
Автоматически проверить настройки сервера на совместимость можно с
помощью скрипта check_server.php
. Для этого
необходимо после копирования файлов системы в корень дерева каталогов веб-сервера
открыть в браузере URL http://example.com/_startup/check_server.php,
где example.com следует поменять на имя используемого сервера.
Скрипт check_server.php
может использоваться и
без установки файлов системы. Для этого достаточно скопировать его из
дистрибутива в любое место дерева файлов веб-сервера.
В данном разделе Описывается два типа установки системы - с помощью мастера и вручную. Мастер появится при первом открытии интерфейса администратора (если настройки не были внесены вручную). Он позволяет проверить установленное на сервере программное обеспечение на соответствие требованиям системы, определить ее основные настройки и сгенерировать запрос на активацию. Но, в некоторых случаях, может дополнительно потребоваться редактирование файлов настроек вручную. Такая настройка описывается в последней части раздела.
Далее в описании используются команды среды UNIX. В случае установки системы на других платформах описанные операции можно выполнить любым другим доступным способом.
Архив с дистрибутивом системы выгружается на сервер в любое доступное место. Для распаковки архива на сервере должна быть установлена утилита unzip.
Не рекомендуется помещать архив внутри дерева DocumentRoot веб-сервера.
Распаковываем архив следующей командой:
unzip cairo-<Редакция>-1.7.2.zip
Где "Редакция"
соответствует вашей версии дистрибутива. Существует три редакции:
standard - полнофункциональная версия
devel - версия для разработчика
trial - триальная версия системы
Теперь необходимо скопировать файлы системы в корневой каталог веб-сервера.
cd cairo-<Редакция>
cp -R * <DocumentRoot>
Система может устанавливаться только в корневой каталог веб-сервера.
При установке системы на платформу Windows® данный раздел можно не рассматривать.
Большая часть данных Cairo хранится в базе данных, но некоторые данные, в частности, изображения, видеоролики и прочие файлы хранятся непосредственно в файловой системе, что позволяет значительно разгрузить сервер. Поэтому на некоторые каталоги должны быть установлены такие права, которые позволят веб-серверу записывать в них файлы.
Следует проявлять осторожность при установке прав на каталоги. Установка слишком широких прав может привести к тому, что такие каталоги станут источником угрозы безопасности веб-ресурса.
cd <DocumentRoot>
chmod 770 tmp var/uploaded var/cache
var/frmtext-files var/config
Прав 770 может быть не достаточно для работы системы, например, если пользователь, от которого работает веб-сервер, не принадлежит используемой группе. В этом случае необходимо установить права 777, но такие права на каталоги могут использоваться для взлома системы.
На этом этапе необходимо создать базу данных, с которой будет работать Cairo и установить в эту базу дамп-заготовку.
В каталоге <DocumentRoot>/dump
хранится файл cairo-dummy.sql, который содержит начальную структуру
данных. Импортировать этот файл в базу данных можно несколькими
способами. Через командную строку это можно сделать, выполнив
следующую команду:
mysql -h <адрес сервера БД> -u <имя
пользователя> -p <имя БД> <
dump/cairo-dummy.sql
Установленная база данных содержит лишь пустые таблицы с базовой информацией о системе. В последствии этот же файл может использоваться для создания новых проектов.
Мастер настроек предоставляет визуальный интерфейс для определения настроек системы. Он активируется при первом запуске системы в случае, если не определены настройки. В этом подразделе подробно рассматривается каждый шаг мастера и описывается назначение и смысл запрашиваемых параметров.
На первом шаге мастер предлагает ознакомиться с лицензионным соглашением. Работу можно будет продолжить только после того, как будет отмечен переключатель "Я принимаю условия лицензионного соглашения".
На втором шаге мастер проверяет соответствие программного обеспечения, установленного на сервере системным требованиям Cairo. В случае, если находится несоответствие какому-либо требованию, то его строка помечается красным крестиком. Процесс настройки не может быть продолжен до тех пор, пока не будут удовлетворены все зависимости.
Далее мастер предлагает ввести основные настройки системы.
Географически сервер с установленной Cairo может находиться в часовом поясе отличном от часового пояса администратора ресурса. Поэтому время, выводимое в часовом поясе сервера, не будет таким для администратора. Например, администратор находится в часовом поясе +0200, а сервер - +0300. Если он создаст сущность в 13:00, то на сервере в этот момент будет 14:00, и в информацию о сущности будет записано неверное с точки зрения администратора время. Поэтому необходима корректировка значений дат и времени в соответствии с часовым поясом администратора. Для этого и используется параметр "Часовой пояс". При его корректном определении все временные параметры будут корректироваться при вводе и перед выводом.
По умолчанию, для определения каталога установки используется значение переменной окружения веб-сервера DOCUMENT_ROOT
. Изменять его не рекомендуется.
Локаль определяет язык и кодировку, в которой будет работать универсальный веб интерфейс. Наиболее подходящим значением будет ru_RU.CP1251
.
Имя сервера по умолчанию. Под этим параметром понимается имя, по которому будет доступен веб-интерфейс администратора. Позже для различных ресурсов можно будет определить и другие имена, но по адресу, определенному в этом параметре можно будет получить доступ ко всем ресурсам, зарегистрированным в системе.
E-mail администратора выводится в тексте сообщений об ошибках системы, а E-mail робота используется при рассылке сообщений системой администрирования.
На следующем шаге мастер предлагает определить настройки базы данных. В отличие от предыдущего этапа эти настройки автоматически определены быть не могут. Следует иметь в виду, что база данных уже должна существовать и в нее должен быть установлен дамп из файла <DocumentRoot>/dump/cairo-dummy.sql
.
Далее мастер предлагает выбрать графическую подсистему, с помощью которой интерфейс администрирования будет обрабатывать изображения. Возможны два варианта: встроенная библиотека GD и внешние утилиты, входящие в дистрибутив ImageMagic. Рекомендуется использовать ImageMagic, поскольку в этом случае выше качество обработанных изображений и возможности обработки не ограничены объемом оперативной памяти, доступной PHP. Если вы решили использовать ImageMagic, то необходимо явно указать полный путь к утилите convert
. На *nix-подобных системах его можно узнать с помощью следующей команды:
which convert
Если же вы решили использовать библиотеку GD, то необходимо указать ее версию.
После определения графической подсистемы мастер создает файлы настроек и предлагает активировать систему. Для активации системы предлагается сохранить файл-запрос и отправить его на E-mail <activate@cairo.com.ua>
. В ответ Вам будет выслан файл активации cairo.lcs
, который необходимо записать в каталог <DocumentRoot>/etc/
.
После выполнения всех вышеописанных операций система готова к использованию. В следующем разделе описывается процесс ручной настройки системы без использования мастера.
Настроить систему можно и без мастера. Для этого необходимо вручную изменить файлы конфигурации. Полное описание
параметров настройки дано в справочном руководстве "Система управления
контентом CAIRO: Файлы настройки". Здесь же приведем минимальные
настройки, которые должны быть установлены для работы системы. Быстрая
настройка предполагает изменение только двух файлов:
/etc/core.ini
и
/etc/login.ini
.
В файлах настройки все мета-имена, заключенные в угловые скобки, должны быть заменены соответствующими значениями или удалены, если допускается пустое значение параметра.
Файл /etc/core.ini
отвечает за настройку ядра
системы и настройки веб-интерфейса, общие для всех ресурсов. После
установки системы в каталоге
<DocumentRoot>/etc
будут распологаться шаблоны
всех файлов настроек.
В первую очередь необходимо определить каталоги, в которых
располагаются различные компоненты системы. Для этого в файле
/etc/core.ini
необходимо заменить строки
"<DocumentRoot>
" на полный путь к каталогу, в
который была установлена система. Чтобы определить данное значение,
необходимо запустить через браузер PHP-файл, предварительно создав и разместив его в корневом каталоге веб-сервера. Файл должен содержать следующий код:
Далее следует определить временную зону клиента. Часовой пояс клиента используется для автоматического пересчета значений полей, связанных с датой и временем. Это может понадобиться, если клиент и сервер находятся в разных временных зонах. Часовой пояс задается смещением от Гринвича в часах. Например, для Украины правильным значением будет "+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
.
Последним этапом установки системы является получение лицензионного
ключа. Лицензионный ключ представляет собой текстовый файл
cairo.lcs
, который должен находиться в каталоге
<DocumentRoot>/etc
.
Для получения файла ключа необходимо отправить запрос по адресу
<activate@cairo.com.ua>
. Запрос должен включать файл, который
генерируется скриптом
http://example.com/_startup/license_request.php
.
В целях безопасности, после установки системы
каталоги <DocumentRoot>/_startup
и
<DocumentRoot>/_doc
должны быть
удалены.
После установки лицензионного ключа система
готова к работе. Введите в адресной строке браузера URL, который был указан
при создании виртуального хоста (например,
http://example.com
).
Перед началом работы необходимо пройти авторизацию. По умолчанию в системе действует одна учетная запись для пользователя root. Для авторизации введите в форму следующие данные:
Login: root
Password: admin
Из выпадающего списка выберите имя ресурса данных.
После авторизации обязательно измените пароль для учетной записи root через интерфейс администратора Cairo. Для этого воспользуйтесь ссылкой на имени авторизированного пользователя, которое выводится в правом верхнем углу экрана.
После успешной авторизации можно начинать разработку информационного ресурса. Руководство по созданию простейшего ресурса содержится в документе "Система управления контентом CAIRO: Как начать работать".
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
.
Стандартный файл шаблона следует заменить кодом, приведенным ниже:
Функция frmtext_precheck вызывается перед проверкой данных. В ней можно осуществлять операции, которые должны быть выполнены на стороне клиента перед проверкой данных, которая производится скриптом, генерируемым автоматически.
Аналогичным образом можно подключить любой другой WYSIWYG редактор.