Установка и настройка Intersystems Cache на RHEL для работы с PHP

    Здесь несколько раз в обсуждениях альтернативных, не реляционных СУБД уже упоминалась такая СУБД, как InterSystems Caché. Это промышленная высокопроизводительная постреляционная СУБД, которая позволяет разработчикам использовать объектный, реляционный и прямой доступ к данным, хранение которых обеспечивается ориентированным на транзакции многомерным ядром СУБД. Данный топик поможет тем, кто захочет попробовать его в действии.

    На офф.сайте совершенно бесплатно мы можем загрузить Evaluation version. К сожалению, их сайт поддерживает только IE 7+, FireFox 3+, or Safari 4+, так что в Chrome у меня не получилось даже залогиниться.



    Выбираем в формате rpm под необходимую платформу. После загрузки совершенно обычно устанавливаем:
    rpm -ivh cache-server-2009.1.3.704.0su-1.rh5.x86_64.rpm
    Во время установки ничего спрашивать не будет — ничего страшного, так и должно быть. После установки создадутся пользователь и группа cacheserver, от которого cache и будет запускаться. Для проверки сразу же его запустим:
    /etc/init.d/cache start.
    Получив радостное [OK], продолжим его настройку. С Cache по умолчанию идет свой преднастроенный Apache, но он нам не нужен, мы будем настраивать свой.
    Описывать установку Apache с PHP я не буду, вы это можете сделать по куче других руководств, но нам обязательно нужен модуль php-odbc. Установим, если он у вас еще его нет:
    yum install php-odbc
    Далее создадим директорию /usr/cacheodbc и загружаем в нее ODBC-драйвер с ftp://ftp.intersystems.com/pub/cache/odbc/
    Устанавливаем:
    gunzip ODBC-5.2.329-lnxrhamd64.tar.Z
    tar xvf ODBC-5.2.329-lnxrhamd64.tar
    ./ODBCinstall

    После этого у вас в /usr/cacheodbc/mgr появится odbc.ini, им нужно заменить пустой /etc/odbc.ini.
    Теперь перенесем необходимые настройки из /usr/cachesys/httpd/conf/httpd.conf в наш /etc/httpd/conf/httpd.conf
    В раздел загрузки модулей:
    CSPModulePath /usr/cachesys/csp/bin/
    LoadModule csp_module_sa /usr/cachesys/csp/bin/CSPa22.so
    AddHandler csp-handler-sa csp cls cxw zen


    Кроме того, создадим виртуальный хост «cachesys» для администрирования Cache:
    <VirtualHost *:80>
    	ServerName cachesys
    	DocumentRoot "/usr/cachesys/csp"
    	ErrorLog "/var/log/httpd/cachesys-error.log"
    	CustomLog "/var/log/httpd/cachesys-access.log" common
    	LogLevel debug
    	<Location />
    	    CSP On
    	    SetHandler csp-handler-sa
    	</Location>
    	<Location "/csp/bin/Systems/">
    	    SetHandler csp-handler-sa
    	</Location>
    	<Location "/csp/bin/RunTime/">
    	    SetHandler csp-handler-sa
    	</Location>
    	DirectoryIndex  index.csp index.php index.html index.htm
    </VirtualHost>
    


    Теперь скопируйте пример /usr/cacheodbc/dev/odbc/samples/php/sample.php в вашу директорию и перезапустите апач.
    Пробуем управление: cachesys/csp/sys/UtilHome.csp
    cachesys
    Пробуем sample.php и радуемся :)
    sample.php

    _________

    Поделиться публикацией

    Похожие публикации

    Комментарии 27

      +1
      Вот только их IDE, в которой собственно и ведется бОльшая часть разработки, только под Windows. Да и в целом СУБД странная настолько, что мотивов для ее выбора вместо доступных (свободных) аналогов я даже придумать не могу.
        0
        В общем-то у нее достаточно плюсов, да и портировать существующие проекты под Cache достаточно просто в связи с тем, что она поддерживает и SQL. Обзор я писать не стал, так как их достаточно много, но если будет нужно могу попозже написать небольшое тестирование производительности на иерархических данных.
          +1
          Ну вот только если и поддерживать существующие проекты, писать что-то новое с использованием Cache я смысла не вижу. А SQL там, кстати, немного странный, с одной стороны есть возможность напрямую оперировать свойствами объектов (через ->), с другой в SELECT отсутствует OFFSET как класс, т.е. реализация, например, пейджера становится нетривиальной задачей.
            0
            Ну, да, с работой через SQL в Cache нивелируются в какой-то мере преимущества ООДБ. Но попробовать было интересно :)
              +1
              Не совсем, я имел в виду, что есть возможность работать со свойствами объектов из SQL. Мне пришлось «попробовать» — не могу сказать, что понравилось :)
          +1
          в InterSystems вот-вот обещают выпустить средства разработки под *nix, в частности точно под MacOS, ну и под linux должно быть, им самим надоело сидеть под винду когда у некоторых уже давно маки, и самим сотрудникам приходится юзать виртуальные машины на маках, чтобы работать с каше, так что ситуацию это должны исправить

          а субд имхо странная настолько насколько может быть странная постреляционная объектно-орентированная субд, для кого-то там много плюсов, для кого то только минусы, но всем не угодишь, я лично ничего против нее не имею, и честно не знаю аналогов где можно с такой же легкостью оперировать данными, и делать все то что умеет она, и то чего она еще сможет уметь
          +1
          В случае необходимости переноса проектов с древних mumps'ов (msm, etc) можно посмотреть на GT.M. Из плюсов: работает на современном linux без всяческих танцев с abi, неплохо поддерживает стандарт, быстрое портирование кода, скорость и надежность.

          С cache у меня дело не пошло. В качестве альтернативы можно посмотреть на документо-ориентированные хранилища вроде couchdb — не думаю, что mumps'ерам будет сложно адаптироваться.
            0
            Вы используете его в продакшн? Как он в сравнении с Каше?
              +1
              GT.M? Да, можно сказать что в production. С cache близко не знаком, ставил на поиграть немного и не более. В любом случае это системы разного класса и сравнивать их не стоит. Скажу точно что в GT.M нет плюшек вроде sql, объектов, способов общения с разными ЯП из коробки и т.д. По сути GT.M более современный ремейк старого доброго MSM, устраняющий многие его недостатки: маленький размер бд, невозможность работы на современных системах без бубна и т.д. Так же улучшена интеграция с ОС: теперь можно без проблем писать расширения на С, отказались от концепции «ОС в ОС» (управлением процессами и прочими системными вещами GT.M не занимается).

              P.S.: на «Вы» ко мне не обязательно обращаться ;)
                0
                Почитал, посмотрел… Честного говоря, GT.M выглядит как-то сыровато.
                  +1
                  Не знаю — не знаю… Не замечал я чтобы что-то из заявленного не работало. Поддержка тоже вполне достойная (разработчики всегда быстро реагируют в comp.lang.mumps, насчет платной ничего не скажу). Как приемник msm вполне подходит, а на остальное разработчики даже не претендуют. Так что всяких модных штучек ожидать не стоит. Вот только 64битной версии все нет и нет…

                  Новые разработки на GT.M конечно начинать не стоит, mumps себя уже давно исчерпал :) Однако живых проектов на msm еще достаточное количество и для них это хороший вариант. /me же плотно смотрит на couchdb, mongodb и т.п.
            0
            Не сразу заметил, что парсер кое-что съел…
              0
              Хмъ, видимо зря писал :) Ну хоть плюшки всем раздам :)
                +1
                гы) а мы до сих пор юзаем 2009 версию, которая ставится под юзером cacheusr а не cacheserver… Читаю дальше…

                Дело в том что через ODBC — можно подключится только к SQL-данным в каше, то есть использовать его можно для связи со сторонними SQL БД.

                Лично мне кажется что использование прямого доступа в каше даёт много плюсов, по сравнению с SQL (а кроме нас am.ua ещё кто-то использует каше в продакшн?)
                  0
                  Я так понимаю у вас CSP? :) Да, конечно, odbc это только для совместимости — я же писал именно для тех, кто хотят для начала пощупать, и даже подумывал написать extension для php для нормальной работы, но теперь, видя что это никому не нужно, расхотел :)
                    0
                    P.S. вообще больше не буду ориентироваться на то, что пхпистов больше…
                  +1
                  нет у нас вовсе не CSP — вы вообще прайс на комерческое использование csp смотрели??? Скажу вкратце ДОРОГО!
                  Мы используем свой собственный Middle Ware написаный на эрланге и си, который распаралеливает входные запросы пользователей на доступные процессы (по интерсистемским условиям на одного юзера полагается 24 процесса — не больше)

                  20ти процессов оказывается достаточным для обслуживания 30 000 пользователей в сутки. Даже сами ребята из интерсистемса удивились и спросили у нас «как это вы с пятипользовательской лицензией — обслуживаете 30 000, может вы нас поломали» — но наш ответ их устроил — лицензионное соглашение не нарушено am.ua использует каше полностью официально.

                  Да а ориентироваться на то что пхпистов больше не надо — врядли пхписты заинтересуются каше…
                    0
                    Да, честно говоря, мне CSP не понравились, и смысла особого в них не вижу. Да и думаю, что проще, правильнее и быстрее написать свои библиотеки под необходимое, чем изучить и внедрить csp.
                      +1
                      вообще то уже давно придуман ZEN, и он много лучше CSP
                      в голом CSP смысла конечно же уже нету, а вот на ZEN можно писать неплохие приложения, правда они не очень то подходят для интернета, скорее для корпоративных приложений, собственно для чего оно и расчитывалось
                      +1
                      А не сталкивались ли вы с проблемой, что при работе через их C API после примерно 500 SQL запросов cbind_alloc_query начинает плеваться ошибкой 460 до тех пор пока реконнект не сделаешь?
                        0
                        нет не сталкивался — так как мы в каше SQL — только в редких случаях для связи со сторонними БД
                        основные же данные хранятся и обрабатываются в глобалах посредством прямого доступа.
                          0
                          Ок спасибо. Значит пока оставим грязный хак :)
                          0
                          я ни о чем подобном не слышал, может поподробней расписать, да и можно в техподдержку в InterSystems написать
                            0
                            Я пробовал когда-то писать в гуглогруппу (http://groups.google.com/group/intersystems-public-cache) о проблемах работы со Stream данными из C, но как-то там с низкоуровневыми вещами совсем глухо.
                              0
                              если вы пользуетесь лицензированной Cache то стоит обратится на WRC
                              а логин и пароль зарегистрировать у консультанта
                                0
                                В следующий раз как вернусь к работе над C модулем обязательно так и поступлю. Спасибо.
                          0
                          Скажите, пожалуйста, во сколько вам обошлась ваша лицензия? Есть это не для огласки, то можно в личку.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое