Zend Core для IBM – Практическое руководство для разработчиков PHP

Начало работы с PHP, IBM Cloudscape и DB2 в среде Linux

Итак, вы решили использовать PHP 5 на сервере Linux™, однако не знаете, с чего начать. Эта статья расскажет вам об инсталляции окружения PHP 5 с использованием первой промышленнно интегрированной рабочей среды PHP, включающей сервер баз данных IBM® Cloudscape™.

Грант Хатчинсон (Grant Hutchison), Менеджер по продукции, Cloudscape and IBM Database Developer Initiatives, IBM Toronto Lab

Грэнт Хатчинсон (Grant Hutchison) является менеджером по продукции, отвечающим за поддержку сообщества разработчиков приложений IBM в области серверов баз данных, таких как DB2 UDB и Cloudscape. Грэнт получил ученую степень в области разработки программного обеспечения. На протяжении последних 13 лет он занимал различные посты в технических областях и областях управления в лаборатории IBM (Торонто).



Стюарт Николас (Stewart Nickolas), Специалист по изучению новых технологий, IBM

Стюарт Николас (Stewart Nickolas) работает в группе Emerging Technologies IBM на протяжении последних пяти лет. За это время он работал над проблемами Web-сервисов, инструментов на базе Eclipse для Web-сервисов а также над множеством Internet-технологий.



14.07.2005

Введение в Zend Core для IBM

Zend Core для IBM является продуктом, созданным при совместных усилиях IBM и Zend Technologies. Продукт содержит версию PHP 5 в двоичном коде для различных платформ, включая AIX® и Linux. Кроме того, в комплект поставки продукта включены: сервер баз данных IBM Cloudscape, являющийся коммерческой версией сервера баз данных Apache Derby, а также DB2 UDB Version 8.2 Runtime Clients для поддержки разработки и размещения web-приложений. В Zend Core также включено множество полезных расширений языка PHP, таких как:

  • ibm_db2 – Новое, присущее данной системе, расширение PHP для серверов IBM DB2 UDB и IBM Cloudscape
  • simplexml – Расширение SimpleXML, предоставляющее простой и легкодоступный набор инструментов для преобразования XML в объект
  • и многое другое...

Существующая документация

В настоящий момент существуют два руководства по Zend Core для IBM.

  • Руководство пользователя Zend Core
  • Руководство по настройке и обслуживанию Zend Core

Оба руководства доступны в формате PDF по адресу http://www.zend.com/core/network/resources.php.

Установка в системе Linux (x86)

Прежде всего, необходимо загрузить версию Zend Core for IBM в двоичном коде, соответствующую вашей операционной системе. В нашем примере мы используем дистрибутив Linux x86, а точнее Novell's SUSE LINUX Enterprise Server 9. Загрузочный файл, скорее всего, будет называться примерно так: ZendCoreForIBM-v1.1.1-Linux-x86.tar.gz.

Перед установкой Zend Core для IBM необходимо принять во внимание некоторые существующие предпосылки. Zend Core поддерживает Web-сервера Apache 1.3.x и Apache 2.0.x (обе версии Apache должны быть скомпилированы только в режиме prefork).

В настоящий момент Zend Core для IBM поддерживает ряд операционных систем, в который входят:

  • Linux (x86 и x86_64)
  • Linux on POWER
  • IBM AIX v5.2 и более поздние версии

Zend Core для IBM содержит Консоль администрирования в виде web-интерфейса. Список поддерживаемых броузеров включает:

  • Microsoft® Internet Explorer 5.5 и более поздний (платформа Windows™)
  • Netscape 7 и более поздний
  • Mozilla 1.7 и более поздний
  • Firefox 1.0 и более поздний (этот броузер использовался авторами руководства)
Листинг 1. Процедура инсталляции для Linux
Распакуйте файлы во временную директорию
$ tar -xzvf ZendCoreForIBM-v1.1.1-Linux-x86.tar.gz
$ cd ZendCoreForIBM-v1.1.1-Linux-x86
Запустите GUI-инсталлятор Zend Core для IBM (как root)
$ ./install
(или) запустите инсталлятор tty (как root)
$ ./install-tty

После подтверждения условий лицензии укажите
 директорию для инсталляции, в которую
  по-умолчанию будут установлены файлы
/usr/local/Zend/Core
(по-умолчанию, путь можно изменить в процессе инсталляции)

Задайте пароль администратора Zend Core для Web-интерфейса администрирования
your-password

(дополнительно)
Настройте идентификатор пользователя Zend Core Network (User ID) и пароль.
Вам будет предложено выбрать опцию поиска ежедневных обновлений Zend Core.

Установите IBM DB2 UDB Runtime Client Version 8.2
При этом будут запрошены следующие параметры
(здесь указаны значения по-умолчанию, однако их можно изменить):

имя пользователя DB2-клиента (db2inst1)
название группы DB2-клиента (db2iadm1)
домашний каталог DB2-клиента (/home/db2inst1)
Пароль пользователя DB2 DB2-клиента (определяется пользователем)

Установить IBM Cloudscape v10 (да/нет)

(дополнительно – но рекомендуется)
Укажите директорию Web-сервера,
Если у вас уже установлен Web-сервер Apache 1.3.x
 или 2.x, он будет найден при инсталляции.
При инсталляции Apache 2.0.49 web-сервер 
устанавливается с инсталляционных дисков SLES 9.
YAST используется для установки Apache и его 
родственных пакетов (apache2-prefork, apache2-worker,
 libapr0 - Apache Portable Runtime Library).

При установке будет запрошен метод инсталляции PHP на вашем Web-сервере.
Таким методом может быть: модуль Apache, FastCGI, CGI
(Рекомендуется устанавливать модуль Apache).

И, наконец, инсталлятор попросит выбрать виртуальный
 сервер для запуска web-консоли
  управления Zend Core для IBM.

ПРИМЕЧАНИЕ: Если вы планируете создавать и размещать PHP-приложения при помощи Cloudscape, вам необходимо установить клиент IBM DB2 UDB Runtime Client отдельно от IBM Cloudscape v10.

Проверка инсталляции

Для проверки инсталляции убедитесь, что запущен Web-сервер, а затем откройте в окне броузера URL: http://localhost/ZendCore. Разумеется, имя хоста вашего виртуального сервера и настройки порта могут отличаться от указанных по-умолчанию.

Рисунок 1. Zend Core for IBM – Окно входа в систему
Рисунок 1. Zend Core for IBM – Окно входа в систему

Размещение PHP-приложения при помощи IBM Cloudscape

Консоль Zend Core для IBM предлагает для взаимодействий с Cloudscape Network Server простой в использовании интерфейс.

Запуск и остановка Cloudscape

Запустите web-сервер и войдите в Control Center Zend Core для IBM (к примеру: http://localhost/ZendCore). Выберите в консоли закладку Configuration->Cloudscape и нажмите StartCloudscape для запуска сервера.

Рисунок 2. Zend Core для IBM – Управление сервером Cloudscape Network Server
Рисунок 2. Zend Core для IBM – Управление сервером Cloudscape Network Server

В консоли управления вы можете проверить установленные компоненты (и их версии) включенные в Zend Core для IBM. Наличие обновлений можно проверить, выбрав вкладку Control Center->Updates

Рисунок 3. Zend Core для IBM – Проверка компонентов
Рисунок 3. Zend Core для IBM – Проверка компонентов

Для запуска и остановки базы данных Cloudscape Network Server дополнительно существует shell-скрипт, который располагается в инсталляционной директории, к примеру в /usr/local/Zend/Core/sbin

  • cloudscape.rc {start|stop|restart}

По-умолчанию для Cloudscape в режиме сервера определен порт 1527, это важно при определении URL соединения с базой данных Cloudscape.

Создание базы данных Cloudscape

Простейшим способом создания базы данных Cloudscape является использования скрипта create_cloudscape_database.sh, который находится в папке /Zend/Core/sbin инсталляционной директории Zend Core для IBM.

create_cloudscape_database.sh -d database
name [-h host] [-n port] [-u user] [-p password]

Параметр database name (имя БД) является единственным требуемым параметром, остальные параметры указаны по-умолчанию следующим образом:

  • -h (localhost)
  • -p (1527)
  • -u (admin)
  • -p (admin)

Примечание: Перед созданием базы данных Cloudscape убедитесь, что запущен сервер Cloudscape Network Server.

Команда для создания базы данных Cloudscape под названием hello будет выглядеть следующим образом:

create_cloudscape_database.sh -d hello

Обратите также внимание на то, что база данных hello физически будет создана в директории /usr/local/Zend/Core/var/cloudscape/hello.

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

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

Наполнение базы данных Cloudscape

После создания базы данных ее можно наполнить данными, используя инструмент Cloudscape под названием ij или интерфейс DB2 для создания таблиц и добавления данных.

Инструмент ij является интерактивным инструментом создания скриптов Cloudscape. Это довольно простой инструмент для запуска скриптов относительно базы данных Cloudscape, который является к тому же Java-приложением. Его можно запустить из командной строки.

Подключимся к созданной нами базе данных hello а затем создадим и наполним таблицу customer_data.

#cd /usr/local/Zend/Core/var/cloudscape/hello

#/usr/local/Zend/Core/Cloudscape_10.0/frameworks/NetworkServer/bin/ij.ksh

ij version 10.0

ij>

Теперь необходимо дать указание ij использовать встроенный драйвер:

ij>driver 'org.apache.derby.jdbc.EmbeddedDriver';

Подключимся к базе данных, используя команду connect.

ij>connect 'hello;user=admin;password=admin;';

ij может использоваться для выполнения SQL-скриптов. Создадим новый файл с именем hello.sql:

>
create table customer_data (

customer_id int NOT NULL,

first_name varchar(50),

last_name varchar(50),

address varchar(50),

PRIMARY KEY (customer_id)

);

Теперь запустим скрипт.

ij>run 'hello.sql';

ij>insert into customer_data values (1, 'Hello', 'World', 'World Address');

ij>insert into customer_data values (2, 'Stewart', 'Nickolas', 'United States of America');

ij>insert into customer_data values (3, 'Grant', 'Hutchison', 'Canada');

И наконец, для выхода из ij введите команду exit. База данных Cloudscape создана и наполнена. Теперь можно приступить к разработке простого PHP-приложения для просмотра данных в броузере.

Проверка соединения

Итак, у нас есть база данных Cloudscape наполненная данными. Следующим шагом будет использование функций IBM DB2, Cloudscape и Apache Derby, доступных как расширение ibm_db2 для PHP. Для соединения с базой и извлечения данных используется собственный драйвер PHP DB2.

Существует два способа соединения с базой данных Cloudscape: соединение с ней, как каталогизированной базой, и как с некаталогизированной.

Для осуществления соединения с базой данных Cloudscape, как с некаталогизированной, используется метод API db2_connect(). Более подробная информация о разнице между этими типами баз данных содержится в документации Zend Core для IBM (http://localhost/ZendCore/index.php?frame=documentation).

Рисунок 4. Zend Core for IBM – Онлайн-документация
Рисунок 4. Zend Core for IBM – Онлайн-документация

Перед написанием PHP-скрипта, использующего PHP-расширение DB2 и Cloudscape, убедитесь, что это расширение активировано в окружении PHP. Для проверки расширений языка Zend Core для IBM предоставляет графический интерфейс управления. На Рисунке 5 видно, что ibm_db2 установлен, и является активным. Активные расширения языка отмечены зеленым индикатором.

Рисунок 5. Zend Core for IBM, PHP-расширения
Рисунок 5. Zend Core for IBM, PHP-расширения

Теперь приготовимся к созданию и размещению web-приложения PHP. Скопируйте код, указанный в Листинге 2, в соответствующую директорию htdocs вашего сервера web-приложения.

Листинг 2. Тестирование PHP web-приложения с использованием БД Cloudscape (hello.php)
<?php

$database = "hello";
$hostname = "localhost";
$port = 1527;
$user = "admin";
$password = "admin";

$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;";
$conn_string .= "UID=$user;PWD=$password;";

try {
    $conn = db2_connect($conn_string, '', '');
    if (! $conn) {
         echo db2_conn_errormsg();
    } else {
      $result = db2_exec($conn, "select * from customer_data");
         if ($result) {
           while ($row = db2_fetch_both($result)) {
             echo "Hello, ".$row[1]." ".$row[2]."
";
           }
         }
         db2_close($conn);
  }
} catch (Exception $ex) {
       echo $ex;
}
?>

Законченное PHP-решение

Итак, мы завершили создание PHP web-приложения, которое полностью реализовано с использованием Zend Core для IBM и встроенного сервера баз данных IBM Cloudscape.

Рисунок 6 PHP-приложение 'Hello World' с использованием БД Cloudscape
Рисунок 6 PHP-приложение 'Hello World' с использованием БД Cloudscape

Резюме

Мы надеемся, что вам понравился наш краткий обзор Zend Core для IBM. Обычно Cloudscape используется только для размещения Java-приложений, включая автономные приложения, приложения клиент/сервер или web-приложения. Существует возможность разрабатывать и размещать web-приложения PHP с использованием для этой цели сервера базы данных Java Cloudscape. Если вам требуется дополнительная масштабируемость и необходимы более продвинутые функции сервера БД, вы можете разместить те же самые PHP-приложения (с очень небольшими изменениями) для использования с сервером DB2 UDB. Серверы DB2 UDB доступны на множестве платформ, включая iSeries™, z/OS®, Linux, UNIX и Windows. Сообщество разработчиков PHP продолжает расти, а сам язык развивается вместе с возрастающимися потребностями. Если вы столкнулись с трудностями в размещении приложений с ипользованием Zend Core для IBM, вы можете получить прямую поддержку от Zend.

Обращаем ваше внимание на то, что в Zend Core для IBM и новом расширении Native DB2 и Cloudscape для PHP существует множество дополнительных особенностей и возможностей, которые мы, к сожалению, не могли полностью раскрыть в этой вводной статье.

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management, Open source
ArticleID=96774
ArticleTitle=Zend Core для IBM – Практическое руководство для разработчиков PHP
publish-date=07142005