The following software packages are *required* for this software to
run correctly.
-- PHP 5.3+ For newer versions, some functions that are used may be
+- PHP 5.3.2+ For newer versions, some functions that are used may be
disabled by default, such as the pcntl_* family. See the
section on 'Queues and daemons' for more information.
- MariaDB 5.x GNU Social uses, by default, a MariaDB server for data
- Curl Fetching files by HTTP.
- XMLWriter For formatting XML and HTML output.
-- mysqlnd The native driver for PHP5 MySQL/MariaDB connections.
+- mysqlnd The native driver for PHP5 MariaDB connections. If you
+ use MySQL, 'mysql' or 'mysqli' may work.
- GD Image manipulation (scaling).
- mbstring For handling Unicode (UTF-8) encoded strings.
- bcmath or gmp For Salmon signatures (part of OStatus)
server, you'll need to have a full installation of StatusNet, a working
config.php, and access to the StatusNet database from the mail server.
-XMPP
-----
-XMPP (eXtended Message and Presence Protocol, <http://xmpp.org/>) is the
-instant-messenger protocol that drives Jabber and GTalk IM. You can
-distribute messages via XMPP using the system below; however, you
-need to run the XMPP incoming daemon to allow incoming messages as
-well.
-
-1. You may want to strongly consider setting up your own XMPP server.
- Ejabberd, OpenFire, and JabberD are all Open Source servers.
- Jabber, Inc. provides a high-performance commercial server.
+Queues and daemons
+------------------
-2. You must register a Jabber ID (JID) with your new server. It helps
- to choose a name like "update@example.com" or "notice" or something
- similar. Alternately, your "update JID" can be registered on a
- publicly-available XMPP service, like jabber.org or GTalk.
+Some activities that StatusNet needs to do, like broadcast OStatus, SMS,
+XMPP messages and TwitterBridge operations, can be 'queued' and done by
+off-line bots instead.
- StatusNet will not register the JID with your chosen XMPP server;
- you need to do this manually, with an XMPP client like Gajim,
- Telepathy, or Pidgin.im.
+Two mechanisms are available to achieve offline operations:
-3. Configure your site's XMPP variables, as described below in the
- configuration section.
+* New embedded OpportunisticQM plugin, which is enabled by default
+* Legacy queuedaemon script, which can be enabled via config file.
-On a default installation, your site can broadcast messages using
-XMPP. Users won't be able to post messages using XMPP unless you've
-got the XMPP daemon running. See 'Queues and daemons' below for how
-to set that up. Also, once you have a sizable number of users, sending
-a lot of SMS, OStatus, and XMPP messages whenever someone posts a message
-can really slow down your site; it may cause posting to timeout.
+### OpportunisticQM plugin
-NOTE: stream_select(), a crucial function for network programming, is
-broken on PHP 5.2.x less than 5.2.6 on amd64-based servers. We don't
-work around this bug in StatusNet; current recommendation is to move
-off of amd64 to another server.
+This plugin is enabled by default. It tries its best to do background
+job during regular HTTP requests, like API or HTML pages calls.
-Public feed
------------
+Since queueing system is enabled by default, notices to be broadcasted
+will be stored, by default, into DB (table queue_item).
-You can send *all* messages from your social networking site to a
-third-party service using XMPP. This can be useful for providing
-search, indexing, bridging, or other cool services.
+Each time it can, OpportunisticQM will try to handle some of them.
-To configure a downstream site to receive your public stream, add
-their "JID" (Jabber ID) to your config.php as follows:
+This is a good solution whether you:
- $config['xmpp']['public'][] = 'downstream@example.net';
+* have no access to command line (shared hosting)
+* do not want to deal with long-running PHP processes
+* run a low traffic GNU social instance
-(Don't miss those square brackets at the end.) Note that your XMPP
-broadcasting must be configured as mentioned above. Although you can
-send out messages at "Web time", high-volume sites should strongly
-consider setting up queues and daemons.
+In other case, you really should consider enabling the queuedaemon for
+performance reasons. Background daemons are necessary anyway if you wish
+to use the Instant Messaging features such as communicating via XMPP.
-Queues and daemons
-------------------
+### queuedaemon
-Some activities that StatusNet needs to do, like broadcast OStatus, SMS,
-and XMPP messages, can be 'queued' and done by off-line bots instead.
-For this to work, you must be able to run long-running offline
-processes, either on your main Web server or on another server you
-control. (Your other server will still need all the above
-prerequisites, with the exception of Apache.) Installing on a separate
-server is probably a good idea for high-volume sites.
+If you want to use legacy queuedaemon, you must be able to run
+long-running offline processes, either on your main Web server or on
+another server you control. (Your other server will still need all the
+above prerequisites, with the exception of Apache.) Installing on a
+separate server is probably a good idea for high-volume sites.
1. You'll need the "CLI" (command-line interface) version of PHP
installed on whatever server you use.
server!), set the following variable:
$config['queue']['enabled'] = true;
+ $config['queue']['daemon'] = true;
You may also want to look at the 'daemon' section of this file for
more daemon options. Note that if you set the 'user' and/or 'group'
* queuedaemon.php - polls for queued items for inbox processing and
pushing out to OStatus, SMS, XMPP, etc.
* imdaemon.php - if an IM plugin is enabled (like XMPP)
-* other daemons that you may have enabled
+* other daemons, like TwitterBridge ones, that you may have enabled
These daemons will automatically restart in most cases of failure
including memory leaks (if a memory_limit is set), but may still die