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