Apache CSP Cache
Эта статья описывает способ настройки WEB-сервера Apache для Windows и CSP. Описание предназначено для программистов и технологов, которым требуется оценить работу и технологические особенности работы CSP на машине с установленным сервером Apache.
Отдельные моменты, касающиеся администраторов, оговариваются отдельно. Те моменты, которые относятся только к администраторам и никак не затрагивают работу программиста, не оговариваются вообще. Полагается, что в реальной работе администратор найдет достаточно времени, чтобы прочитать официальную документацию или обратиться в службу поддержки Intersystems.
Будем полагать, что настройка начинается в состоянии:
- Операционная система Win32
- На компьютере установлена поддержка TCP/IP
- На компьютере установлена СУБД Cache' версии 4 или старше.
- На компьютере установлен сервер Apache.
В течении описания демонстрируются шаги, выполнявшиеся на машине в конфигурации:
Windows NT Workstation 4.0
Cache for Windows NT (Intel) 4.1.3 (Build 175) Mon Dec 3 2001 16:22:28 EST
Apache/1.3.12 (Win32)
Технология CSP заключается в создании текстового файла с расширением по умолчанию .csp, в котором вместе с html - тегами присутствуют специальные теги csp. При запросе такого файла веб сервер должен отдать этот файл на фильтрацию фильтру, назначенному на это расширение с тем, чтобы он отдал серверу http - ответ. В версии для IIS Cache предлагает для этой цели ISAPI - фильтр. Но, поскольку Apache архитектурно не поддерживает ISAPI - фильтров (только ISAPI - модули), то фильтрация расширения выполняется через механизм CGI - шлюза по той же схеме, что и при подключении Perl и PHP. В некий каталог должен быть размещен модуль, который должен вызвать веб-сервер.
При инсталляции по умолчанию Cache размещает в своем каталоге файлы CSPcgi.exe, CSPcgiSys.exe и CSPnsd.exe. Этот набор и есть то, что требуется для настройки сервера Apache. Следует скопировать файлы:
copy h:\cachesys\bin\cspcgi.exe h:\apache\cgi-bin\nph-cspcgi.exe
copy h:\cachesys\bin\cspcgisys.exe h:\apache\cgi-bin\nph-cspcgisys.exe
При копировании переименование в файлы с префиксом nph- является обязательным, поскольку в дистрибутиве Cache содержится ошибка (возможно, впоследствии она будет исправлена).
При вызове csp страницы веб сервер вызывает фильтр. Но сам фильтр тоже ничего не делает, он только отправляет запросы демону csp. Демон должен быть запущен:
start h:\cachesys\bin\cspnsd.exe
И здесь мы натыкаемся на чудесную особенность этого самого демона - он может запускаться только если текущий пользователь является членом группы администраторов. Зачем редиректу портов это может понадобиться - ума не приложу. Поэтому логинимся как администратор и вносим свой повседневный аккаунт в список администраторов этой машины. Логинимся снова в рабочий повседневный аккаунт. Лично мне это не понравилось. Впрочем, это недоразумение, я полагаю, в последствии будет исправлено.
Следующим шагом является связывание расширений csp и cls с требующимся фильтром. Следует вставить в файле mime.types:
text/csp csp cls
И в файле httpd.conf - связывание обработчика:
ScriptAliasMatch /*.([Cc][Ss][Pp]|[Cc][Ll][Ss])$/ "/cgi-bin/nph-CSPcgi.exe"
Action text/csp "/cgi-bin/nph-CSPcgi.exe"
Технология csp - это не набор отдельных файлов, как в perl, а некая группа, объединяемая понятием "приложение". Приложение csp - это учетные записи. Файл csp должен принадлежать какому-то определеному приложению. Смысла в этом приложении может никакого не быть, но для того чтобы csp работало, нужно создать приложение csp. Оно указывается дважды. Один раз - в настройках Cache куба, второй раз - через веб интерфейс. Итак.
Правая кнопка мышки на Cache кубе, Configuration Manager, закладка CSP. Выделяем узел Applications, нажимаем кнопку Add. По этой кнопке предлагается ввести URL, начиная с которого будут видны в браузерах страницы этого приложения. В пробном примере вносим /hello, причем косая черта обязательна. Создаются узлы, в которых требуется детализировать описание нашего приложения.
- Namespace - область, в которой будет храниться служебная информация связанная с файлами этого приложения (будет описано позднее) и в котором будет запускаться выполнение страницы. Значение по умолчанию - USER. Если устраивает, то не меняем.
- Cache Physical Path - путь, где будут лежать исходные тексты наших csp файлов. Указываем настоящий путь, например, h:\web\csp\hello.
Остальные настройки к программированию не имеют отношения, оставим их администраторам.
Теперь проверяем, что запущены Cache, CSPNsd и Apache. В браузере набираем: http://localhost/cgi-bin/nph-cspcgisys.exe. Появляется страница с настройками доступа к CSP. Отмечаем, что здесь также понадобится административное вмешательство, поскольку этот URL должен функционировать только в течении короткого времени и не должен быть доступен извне. А то нехорошие люди поуправляют Вашим сайтом.
Для продолжения конфигурирования приложения hello жмем ссылку Application Access. Справа жмем Add Application. В поле Application Path пишем /hello, в поле Web Server Physical Path пишем h:\web\csp\hello. Остальные поля можно оставить без изменения. Работать уже будет. Отметим, что Вашему администратору следует их все проверить и убедиться, что их значения корректные с точки зрения администрирования.
Теперь в файле httpd.conf прописываем виртуальный каталог:
<Directory "h:/web/csp/hello/">
Options All
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /hello/ "h:/web/csp/hello/"
Для проверки кладем в каталог h:\web\csp\hello текстовый файл hi.csp:
<html>
<head>
</head>
<body>
Hello, world!
<p>
This page visited #($I(^A))# times.
</body>
</html>
В браузере запрашиваем проверку: http://localhost/hello/hi.csp. Число посещений страницы должно увеличиваться при перезагрузке страницы на единицу. При первой загрузке этого URL происходит трансляция csp файла в класс, и только потом выполнение кода. При последующих обращениях проверяется был ли модифицирован файл. Если не был, то класс не создается и не компилируется. Время отклика может отличаться существенно. Поэтому при использовании медленных машин или медленных дисков лучше в настройках доступа CSP (Server Access) увеличить время ожидания.
В принципе, это все шаги, требовавшиеся для настройки CSP для работы с сервером Apache под Windows. Начиная с этого состояния настройки достаточны, чтобы начать программирование и изучение технологии. К дополнительным практически значимым заметкам я бы отнес:
- В каталоге h:\web\csp\hello можно создавать подкаталоги и размещать в них также csp файлы: они будут видны как подкаталоги виртуального каталога /hello.
- После настройки приложения лучше убрать nph-cspcgisys.exe из доступных извне каталогов.
- Каждой странице csp будет соответствовать класс Cache, поэтому если в файле csp содержится только статический текст, лучше использовать обычный html.
- При установке Cache без лицензии результат работы csp будет доступен только по адресам http://localhost/... или http://127.0.0.1/... Для доступа с других машин следует поставить лицензию с разрешением csp-доступа.
При инсталляции Cache в каталоге CacheSys развертывается демонстрационный каталог h:\cachesys\csp. Его можно увидеть в браузере, назначив каталог в сервере Apache:
<Directory "h:/CacheSys/CSP/">
Options All
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /csp/ "h:/CacheSys/CSP/"
Этот каталог содержит практически все случаи использования технологии CSP и является своего рода справочником функциональности CSP. Хорошей мыслью будет создание закладки на url http://localhost/csp/samples/menu.csp. Остальные настройки приложения csp уже выполнены инсталлятором Cache.
Дополнительные документы по настройке Apache и CSP:
Configuring Apache for CSP Pages on Windows 2k
CSP and Apache web servers
Данная статья ни в коем случае не должна использоваться в качестве подмены официальной документации Intersystems и служит всего лишь пошаговым руководством для программистов с целью быстрого начала работы с технологией CSP.
Евгений Каратаев
|