Установка и настройка Node.js

29.04.2014
Share on FacebookShare on TwitterShare on GooglePlusShare on Linkedin
Автор:

Node.js - это платформа с открытым исходным кодом для написания серверной части веб-реализации на JavaScript. В ее основе лежит событийно-ориентированное и асинхронное программирование с неблокирующим вводом/выводом. Платформа предназначена для обособленного выполнения веб-приложений на языке JavaScript. Для выполнения JavaScript-кода используется движок V8, который разработан компанией Google.

Интегрировать Node.js с Drupal 7 можно с помощью модуля Node.js integration. Давайте испытаем его в действии, а итогом нашего блога будет проверка корректности работы node.js.

Сначала устанавливаем все необходимые пакеты для работы с node.js и сам node.js:

sudo apt-get install build-essential git curl openssl libssl-dev

Самым распространенным методом установки node.js является его компиляция из исходных кодов.

Примечание: необходимо заменить v.0.8.x на последнюю стабильную версию с https://github.com/joyent/node/

mkdir -p ~/local/src

cd ~/local/src

git clone --branch v0.8.x git://github.com/joyent/node.git

cd node

./configure

make

sudo make install

Если установка прошла без ошибок, то вам откроется доступ к оболонке node.js.

$ node

> console.log('Hello world');

Hello world

Следующим нашим шагом будет установка модуля node.js на Drupal, после чего переходим в директорию с ним с помощью такой команды:

$ cd path/to/your/nodejs/module/directory

Добавляем все необходимые зависимости:

$ sudo npm install

$ sudo npm install socket.io

$ sudo npm install request

$ sudo npm install express

$ sudo npm install connect

Далее переходим на страницу настройки node.js. Копируем все содержимое из поля "Suggested configuration", создаем файл sites/ all/ modules/ nodejs/ nodejs.config.js и добавляем туда скопированные настройки.

Nodejs configuration

Все, платформа node.js настроена. Проверить ее работу можно, включив модуль "Nodejs Watchdog" (он входит в пакет модуля Node.js integration).

После установки продолжаем дальше. Для того, чтобы нам не прописывать постоянно ‘node server.js ', веб разработчик может его запустить в фоновом режиме с помощью пакета forever. Forever умеет управлять фоновыми процессами, а именно: перезапускать их после сбоя; перенаправлять стандартный вывод ошибок в файлы журналов, и исполнять другие полезные функции. Итак, устанавливаем его у нас на сервере:

$ sudo npm install -g forever

Теперь вместо 'node server.js’ мы будем писать 'forever start server.js'. Для того, чтобы остановить - прописываем 'forever stop server.js'. Чтобы проверить, какие процессы запущены через forever, можно воспользоваться 'forever list'.

Для того, чтобы node.js запускался автоматически после загрузки/перезагрузки системы, нужно создать скрипт инициализации в каталоге /etc/init.d/.

В нашем случае скрипт выглядит так:

set -e
PATH=/usr/local/bin:/bin/usr:/bin:/sbin/:/usr/sbin
DAEMON=/var/www/node.loc/sites/all/modules/nodejs/server.js
case "$1" in
    start)
        forever start $DAEMON
        ;;
    stop)
        forever stop $DAEMON 
        ;;
    force-reload|restart)
      forever restart $DAEMON;;
    *) echo "Usage: /etc/init.d/node {start|stop|restart|force-reload}"
      exit 1
      ;;
esac
exit 0

Сохраняем его в файл /etc/init.d/node. Далее прописываем в терминале следующие команды:

$ sudo update-rc.d node defaults 
$ sudo chmod +x /etc/init.d/node

Вот и все, мы настроили node.js для корректной работы.

Пример использования, с реализованной отправкой личных сообщений при помощи node.js, можно посмотреть здесь.

2 votes, Rating: 5
Share on FacebookShare on TwitterShare on GooglePlusShare on Linkedin

Также по теме

1

Часто в адрес Drupal можно увидеть заявления в стиле: “На этом фреймворке не создать high-load веб-сайта”. Мы опровергнем этот миф не красивыми...

2

При принятии решения запустить собственный вебсайт одним из самых важных вопросов является реализация - CMS или сапомис? Читайте дальше о преимуществах фреймворка...

3

Очень часто многие разработчики сталкиваются с проблемой гибкой сортировки материалов на сайте. Одним из вариантов решений этой задаче в Drupal есть модуль Radioactivity. Узнайте больше о его...

4

В своей практике мы довольно часто используем Git Flow модель работы с репозиторием. Схему работы с помощью которой подробнее описана ниже.

5

Изменения в Drupal 8, кроме всего прочего, коснулись процеcса создания собственных виджетов и форматтеров. Новый плагин API значительно упрощает эту процедуру.

Need a quote? Let's discuss the project

Are you looking for someone to help you with your Drupal Web Development needs? Let’s get in touch and discuss the requirements of your project. We would love to hear from you.

Join the people who have already subscribed!

Want to be aware of important and interesting things happening? We will inform you about new blog posts on Drupal development, design, QA testing and more, as well news about Drupal events.

No charge. Unsubscribe anytime