Hier wird beschrieben, wie sich mittels node.js in einer Drupal7-Webseite Inhalte in quasi Echtzeit anzeigen lassen.
Drupal 7 installieren
grundlegende Vorbereitung von Debian/Wheezy:
aptitude install drupal7 drush ln -s /etc/drupal/7/apache2.conf /etc/apache2/sites-available/drupal7 a2ensite drupal7 a2enmod rewrite service apache2 reload
mittels "drush" Drupalseite installieren & erweitern:
drush si standard --db-url=mysql://USER:PASS@localhost/drupal7 drush dl devel admin_menu admin_menu_toolbar module_filter cck views drush en devel admin_menu admin_menu_toolbar module_filter cck views views_ui drush dis toolbar admin
beschleunigen mittels apc
Installation:
aptitude install php5-apc
in /etc/php5/conf.d/20-apc.ini folgendes eintragen:
extension=apc.so apc.rfc1867 = 1 apc.include_once_override=0
node.js Server
Installation
siehe: http://www.gerritbrands.com/blog/drupal-and-node-js-ubuntu-localhost
nodejs Drupalmodule installieren:
cd /your/drupalsite/sites/default/ drush dl nodejs views_nodejs drush en nodejs views_nodejs
aus Debian/Jessie "nodejs" installieren (enthält "npm"):
aptitude install nodejs
mittels npm node.js Pakete installieren:
cd /your/drupalsite/sites/default/modules/nodejs/ npm install npm install socket.io npm install request npm install express npm install connect
die Konfigurationsdatei lässt sich über das Drupalbackend erzeugen, hier ein Beispiel:
backendSettings = { "scheme":"http", "host":"192.168.100.15", "port":8080, "resource":"/socket.io", "publishUrl":"publish", "serviceKey":"", "backend":{ "port":80, "host":"192.168.100.15", "messagePath":"/drupal7/nodejs/message"}, "clientsCanWriteToChannels":true, "clientsCanWriteToClients":true, "extensions":"", "debug":true, "transports":["websocket", "flashsocket", "htmlfile", "xhr-polling", "jsonp-polling", "polling"], "jsMinification":true, "jsEtag":true, "logLevel":3};
einmalig starten
im Drupalnodejsmodulverzeichnis folgendes starten:
cd /your/drupalsite/sites/default/modules/nodejs/ nodejs server.js
als Daemon starten
mittel forver lässt sich nodejs überwacht starten:
npm -g install forever forever /your/drupalsite/sites/default/modules/nodejs/server.js
und damit dies beim systemstart passiert laesst sich das per script in /etc/rc2.d erledigen:
#set -e DRUPAL7NODEJS=/your/drupalsite/sites/default/modules/nodejs/server.js case "$1" in start|"") forever start $DRUPAL7NODEJS exit $? ;; restart|reload|force-reload) forever reload $DRUPAL7NODEJS ;; stop) forever stop $DRUPAL7NODEJS ;; *) echo "Usage: nodejs [start|stop]" >&2 exit 3 ;; esac