Статьи

Начало работы с Drupal и MongoDB

MongoDB — это наиболее полнофункциональная масштабируемая база данных, покоряющая мир технологий. Drupal — это стандарт управления контентом, который включает журналы, блоги, онлайн-газеты и многое другое. Вполне естественно, что они собрались вместе, чтобы обеспечить быструю динамическую масштабируемую систему CMS. Всякий раз, когда сайт Drupal нуждается в масштабировании динамического контента, он обращается к MongoDB для возможности доставки. Examiner.com был пионером в этом подходе и многие сайты Drupal последовали этому примеру.

Вот как начать работу с Drupal, поддерживаемым MongoDB.


В настоящее время Drupal не может запустить чистую установку MongoDB с Drupal. Drupal добился большого прогресса в абстрагировании подключения к базе данных в центральный уровень модели с Drupal 7, а Drupal 8 обещает еще больше. Тем не менее, это все еще в стадии разработки, и хотя большая часть функциональных возможностей доступна в виде поддержки MongoDB, в настоящее время некоторые компоненты остаются зависимыми от SQL.

Поскольку большая часть работы по переносу Drupal на MongoDB была направлена ​​на масштабируемость и производительность, возможно, есть сайт, где публичные просмотры страниц на MongoDB на 100%. Тесты производительности на экземпляре Drupal, поддерживаемом MongoDB, впечатляют.

Установка MonogDB

Это очень краткие инструкции и некоторые предположения. Более подробные инструкции по установке смотрите в документации .

Установка на Linux

apt-get install mongodb-10gen or yum install mongodb

Установка на windows

Следуйте инструкциям по установке на сайте MongoDB .

Установка на Mac

brew install mongodb

Установка PHP-драйвера MongoDB

Полные указания можно найти в документации MongoDB PHP .

Использование Pecl для установки драйвера

Pecl является предпочтительным способом установки драйвера MongoDB. Если вы раньше не использовали pecl, вам может потребоваться установить некоторые предварительные требования.

pecl install mongo

Настройка PHP для использования драйвера

Используя ваш любимый редактор, добавьте следующую строку в ваш файл php.ini.

extension=mongo.so

Установка Drupal

Это самая сложная часть, и я просто приведу отличные указания, уже приведенные в файле Drupal install.txt, с некоторыми пояснениями.

1. Скачайте и распакуйте Drupal.

Вы можете получить последнюю версию Drupal с http://drupal.org — файлы
доступны в форматах .tar.gz и .zip и могут быть извлечены с использованием большинства
инструментов сжатия.

Для загрузки и распаковки файлов в типичной командной строке Unix / Linux используйте
следующие команды (при условии, что вам нужна версия xy Drupal в
формате .tar.gz ):

wget http://drupal.org/files/projects/drupal-x.y.tar.gz 

tar -zxvf drupal-x.y.tar.gz

Это создаст новый каталог drupal-xy /, содержащий все файлы и
каталоги Drupal . Затем, чтобы переместить содержимое этого каталога в каталог
внутри корневого каталога документов вашего веб-сервера или в общедоступный каталог HTML , выполните следующую
команду:

 mv drupal-x.y/* drupal-x.y/.htaccess /path/to/your/installation

2. Создайте базу данных Drupal.

Поскольку Drupal хранит всю информацию о сайте в базе данных, вы должны создать
эту базу данных, чтобы установить Drupal, и предоставить Drupal определенные
привилегии базы данных (например, возможность создавать таблицы). В настоящее время это должна быть реляционная база данных. Drupal поддерживает SQLite, PostgreSQL и MySQL. За подробностями обращайтесь к INSTALL.mysql.txt, INSTALL.pgsql.txt или INSTALL.sqlite.txt. Вам также может
понадобиться проконсультироваться с вашим провайдером веб-хостинга для получения инструкций, специфичных для вашего веб-хостинга.

Запишите имя пользователя, пароль, имя базы данных и имя хоста при
создании базы данных. Вы введете эту информацию во время установки.

3. Запустите скрипт установки.

Чтобы запустить скрипт установки, укажите в своем браузере базовый URL-адрес вашего
сайта (например, http://www.example.com).

You will be guided through several screens to set up the database, add the
site maintenance account (the first user, also known as user/1), and provide
basic web site settings.

During installation, several files and directories need to be created, which
the install script will try to do automatically. However, on some hosting
environments, manual steps are required, and the install script will tell
you that it cannot proceed until you fix certain issues. This is normal and
does not indicate a problem with your server.

Integrating MongoDB and Drupal

Installing the Drupal MongoDB plugin

The MongoDB Drupal plugin installs like any drupal plugin. Either install via the administration screen, or simply download the module at http://drupal.org/project/mongodb and uncompress it into the sites/all/modules/ directory.

Configure Drupal to use the MongoDB plugin

Currently there isn’t an admin interface to configure MongoDB, luckily it’s easy enough to configure manually.

First create a file called local.settings.php (it should be in the same directory as settings.php).

Populate the file with the following contents. Make sure to replace the placeholders [YOURDATABASENAME] and [SITENAME].

YOURDATABASENAME name can be anything doesn’t need to be created prior to use.
SITENAME will either be your sitename as it is named in Drupal. It may be called ‘Default’ if this is the primary site for the Drupal installation.

<?php
#MongoDB
$conf['mongodb_connections'] = array(
'default' => array( // Connection name/alias
'host' => 'localhost', // Omit USER:PASS@ if Mongo isn't configured to use authentication.
'db' => '[YOURDATABASENAME]' // Database name. Make something up, mongodb will automatically create the database.
),
);
include_once('./includes/cache.inc');
# -- Configure Cache
$conf['cache_backends'][] = 'sites/[SITENAME]/modules/mongodb/mongodb_cache/mongodb_cache.inc';
$conf['cache_class_cache'] = 'DrupalMongoDBCache';
$conf['cache_class_cache_bootstrap'] = 'DrupalMongoDBCache';
$conf['cache_default_class'] = 'DrupalMongoDBCache';
# -- Don't touch SQL if in Cache
$conf['page_cache_without_database'] = TRUE;
$conf['page_cache_invoke_hooks'] = FALSE;
# Session Caching
$conf['session_inc'] = 'sites/[SITENAME]/modules/mongodb/mongodb_session/mongodb_session.inc';
$conf['cache_session'] = 'DrupalMongoDBCache';
# Field Storage
$conf['field_storage_default'] = 'mongodb_field_storage';
# Message Queue $conf['queue_default_class'] = 'MongoDBQueue';
?>

 

Enabling the MongoDB Module

Login to your drupal administration screen.

Navigate to the modules management screen.

First we need to disable the block module from Drupal Core. This will conflict with the MongoDB Block module and Drupal won’t let you enable the MongoDB plugin with this enabled. Uncheck Block and click save.

Now as the screenshot below demonstrates scroll to the bottom of the modules adminstration screen to the MongoDB section and enable all the modules.

Resources