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: {{{ #! /bin/sh #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 }}}