Статьи

NuoDB: как превратить лампу в мощный, масштабируемый пакет программного обеспечения

Популярным программным стеком для веб-приложений является LAMP. LAMP — это сочетание Linux, Apache, MySQL и PHP. В этом программном стеке (LANP) легко использовать NuoDB вместо MySQL. Я покажу вам, как это сделать. В этой статье я создам очень простое веб-приложение, которое использует NuoDB для отображения содержимого образца базы данных NuoDB Hockey.

В этой статье блога я использую чистую установку 64-битного рабочего стола Ubuntu 12.04. http://www.ubuntu.com/download/desktop   (примечание: приведенные ниже команды и пути могут отличаться в других дистрибутивах Linux).

Установка Apache2 и PHP

Выполните следующие команды для установки Apache2 и PHP:

$ sudo apt-get install apache2
$ sudo apt-get install libapache2-mod-php5

Установите и настройте NuoDB

Загрузите NuoDB:  http://www.nuodb.com/download

Установите NuoDB и запустите быстрый запуск:  http://www.nuodb.com/nuodb-online-documentation/tasks/t_InstallConfigLix_inst.html

Чтобы использовать NuoDB с PHP, вам необходимо установить и настроить драйвер NuoDB PHP PDO. Исходный код доступен на GitHub, но вам, вероятно, не нужно создавать его самостоятельно, потому что ваша установка NuoDB уже содержит предварительно собранные драйверы для PHP 5.3 NTS и PHP 5.4 NTS.

Конфигурация PHP

В дистрибутиве Ubuntu используется PHP 5.3.10 NTS. Вы можете увидеть это с помощью следующей команды:

$ php -i | grep "PHP Version"
PHP Version => 5.3.10-1ubuntu3.6

Далее мы можем найти расположение PHP  extension_dir :

$ php -i | grep extension_dir
extension_dir => /usr/lib/php5/20090626 => /usr/lib/php5/20090626

Установите и настройте драйвер NuoDB PHP PDO

Получив версию PHP и extension_dir, мы можем скопировать правильный драйвер PDO NuoDB PHP в этот extension_dir с помощью следующей команды:

$ sudo cp /opt/nuodb/drivers/php_pdo/php-5.3.NTS/pdo_nuodb.so /usr/lib/php5/20090626

Далее нам нужно изменить конфигурацию PHP для динамической загрузки драйвера PDO NuoDB PHP. Это делается путем добавления  «extension = pdo_nuodb.so»  в ваши файлы инициализации PHP. В Ubuntu PHP настроен для сканирования определенных каталогов на наличие файлов PHP .ini. Версия PHP для командной строки сканирует   каталог /etc/php/cli/conf.d . Когда PHP выполняется из Apache2, PHP настраивается для сканирования каталога /etc/php5/apache2/conf.d  . Чтобы добавить NuoDB в эти конфигурации PHP, мы можем использовать этот оператор расширения в файле с именем nuodb.ini и скопировать этот файл в эти каталоги конфигурации:

$ echo "extension=pdo_nuodb.so" > /tmp/nuodb.ini
$ sudo cp /tmp/nuodb.ini /etc/php5/cli/conf.d/
$ sudo cp /tmp/nuodb.ini /etc/php5/apache2/conf.d/
$ sudo /etc/init.d/apache2 restart

Проверьте правильность загрузки драйвера NuoDB PHP PDO

Мы можем проверить правильность конфигурации и загрузку драйвера PDO NuoDB PHP, вызвав функцию phpinfo () из файла .php, который мы можем скопировать на веб-сайт Apache2 по умолчанию. Пример:

$ echo "<? phpinfo(); ?>" > /tmp/phpinfo.php
$ sudo cp /tmp/phpinfo.php /var/www/

Затем используйте веб-браузер с URL:  http: //localhost/phpinfo.php

phpinfo

NuoDB веб-приложение

Ниже приведен пример кода PHP, который может отображать содержимое примера базы данных NuoDB Hockey:

<?php
$dsn = "nuodb:database=test@localhost;schema=Hockey";
$username = "dba";
$password = "goalie";
$db = NULL;
try {
   $db = new PDO($dsn, $username, $password);
   $sql = "select * from Hockey";
   $stmt = $db->prepare($sql);
   $stmt->execute();
   $result = $stmt->fetchAll();
   echo '<h1>NuoDB Hockey Example</h1>';
   echo '<table border="1">';
   foreach ($result as $row) {
      echo '<tr>';
      echo "<td>" . $row["NUMBER"] . "</td>";
      echo "<td>" . $row["NAME"] . "</td>";
      echo "<td>" . $row["POSITION"] . "</td>";
      echo "<td>" . $row["TEAM"] . "</td>";
      echo '</tr>';
   }
   echo '</table>';
} catch (PDOException $e) {
   echo $e->getMessage();
}
$db = NULL;
?>

Скопируйте приведенный выше код в файл /var/www/showHockey.php

Запуск веб-приложения

Чтобы запустить веб-приложение, используйте веб-браузер по URL-адресу: http: //localhost/showHockey.php

NuoDB_LANP_Example

Резюме

В этой статье перечислены простые шаги по использованию NuoDB с Linux, Apache2 и PHP. В Интернете есть множество примеров PDO для LAMP и PHP, где вы можете узнать больше о написании этих типов веб-приложений. Если у вас есть приложение LAMP, которое использует PHP PDO, вы сможете запустить это приложение с NuoDB практически без изменений. В следующем посте я покажу вам, как использовать Zend Framework с NuoDB.