git.gnu.io has moved to IP address 209.51.188.249 -- please double check where you are logging in.

Commit e9cc87f5 authored by mmn's avatar mmn

Updated some of the INSTALL documentation

Also we now recommend the mysqlnd driver, instead of 'mysql', so no need
to mention deprecation in daemon.php comments.
parent 3ffe0e48
......@@ -4,44 +4,50 @@ Prerequisites
The following software packages are *required* for this software to
run correctly.
- PHP 5.3+. Newer versions may complain on some coding standards, but
glitches are intended to be fix asap.
- MySQL 5.x. The StatusNet database is stored, by default, in a MySQL
server. It has been primarily tested on 5.x servers, although it may
be possible to install on earlier (or later!) versions. The server
*must* support the MyISAM storage engine -- the default for most
MySQL servers -- *and* the InnoDB storage engine.
- A Web server. Preferably, you should have Apache 2.2.x with the
mod_rewrite extension installed and enabled.
Your PHP installation must include the following PHP extensions:
- Curl. This is for fetching files by HTTP.
- XMLWriter. This is for formatting XML and HTML output.
- MySQL. For accessing the database.
- GD. For scaling down avatar images.
- mbstring. For handling Unicode (UTF-8) encoded strings.
- PHP 5.3+ 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
storage. Versions 5.x and 10.x have both reportedly
worked well. It is also possible to run MySQL 5.x.
- Web server Apache, lighttpd and nginx will all work. CGI mode is
recommended and also some variant of 'suexec' (or a
proper setup php-fpm pool)
NOTE: mod_rewrite or its equivalent is extremely useful.
Your PHP installation must include the following PHP extensions for a
functional setup of GNU Social:
- Curl Fetching files by HTTP.
- XMLWriter For formatting XML and HTML output.
- mysqlnd The native driver for PHP5 MySQL/MariaDB connections.
- GD Image manipulation (scaling).
- mbstring For handling Unicode (UTF-8) encoded strings.
- bcmath or gmp For Salmon signatures (part of OStatus)
Better performance
------------------
For some functionality, you will also need the following extensions:
- Memcache. A client for the memcached server, which caches database
information in volatile memory. This is important for adequate
performance on high-traffic sites. You will also need a memcached
server to store the data in.
- Mailparse. Efficient parsing of email requires this extension.
Submission by email or SMS-over-email uses this extension.
- Sphinx Search. A client for the sphinx server, an alternative
to MySQL or Postgresql fulltext search. You will also need a
Sphinx server to serve the search queries.
- bcmath or gmp. For Salmon signatures (part of OStatus). Needed
if you have OStatus configured.
- gettext. For multiple languages. Default on many PHP installs;
will be emulated if not present.
You will almost definitely get 2-3 times better performance from your
site if you install a PHP bytecode cache/accelerator. Some well-known
examples are: eaccelerator, Turck mmcache, xcache, apc. Zend Optimizer
is a proprietary accelerator installed on some hosting sites.
- memcache A client for the memcached server, which caches database
information in volatile memory. This is important for
adequate performance on high-traffic sites. You will
also need a memcached server to store the data in.
- mailparse Efficient parsing of email requires this extension.
Submission by email or SMS-over-email uses this.
- sphinx A client for the sphinx server, an alternative to MySQL
or Postgresql fulltext search. You will also need a
Sphinx server to serve the search queries.
- gettext For multiple languages. Default on many PHP installs;
will be emulated if not present.
You may also experience better performance from your site if you install
a PHP bytecode cache/accelerator. Currently the recommended cache module
is 'xcache', which after installation (php5-xcache) can be enabled in
your site's config.php with:
addPlugin('XCache');
External libraries
------------------
......@@ -387,6 +393,10 @@ server is probably a good idea for high-volume sites.
* pcntl_fork, pcntl_wait, pcntl_wifexited, pcntl_wexitstatus,
pcntl_wifsignaled, pcntl_wtermsig
Other recommended settings for optimal performance are:
* mysqli.allow_persistent = On
* mysqli.reconnect = On
2. If you're using a separate server for queues, install StatusNet
somewhere on the server. You don't need to worry about the
.htaccess file, but make sure that your config.php file is close
......@@ -408,30 +418,27 @@ This will run the queue handlers:
* queuedaemon.php - polls for queued items for inbox processing and
pushing out to OStatus, SMS, XMPP, etc.
* xmppdaemon.php - listens for new XMPP messages from users and stores
them as notices in the database; also pulls queued XMPP output from
queuedaemon.php to push out to clients.
* imdaemon.php - if an IM plugin is enabled (like XMPP)
* other daemons that you may have enabled
These two daemons will automatically restart in most cases of failure
These daemons will automatically restart in most cases of failure
including memory leaks (if a memory_limit is set), but may still die
or behave oddly if they lose connections to the XMPP or queue servers.
Additional daemons may be also started by this script for certain
plugins, such as the Twitter bridge.
It may be a good idea to use a daemon-monitoring service, like 'monit',
to check their status and keep them running.
All the daemons write their process IDs (pids) to /var/run/ by
default. This can be useful for starting, stopping, and monitoring the
daemons.
daemons. If you are running multiple sites on the same machine, it will
be necessary to avoid collisions of these PID files by setting a site-
specific directory in config.php:
Since version 0.8.0, it's now possible to use a STOMP server instead of
our kind of hacky home-grown DB-based queue solution. This is strongly
recommended for best response time, especially when using XMPP.
$config['daemon']['piddir'] = __DIR__ . '/../run/';
See the "queues" config section below for how to configure to use STOMP.
As of this writing, the software has been tested with ActiveMQ 5.3.
It is also possible to use a STOMP server instead of our kind of hacky
home-grown DB-based queue solution. This is strongly recommended for
best response time, especially when using XMPP.
Themes
------
......
......@@ -48,12 +48,11 @@ class Daemon
function background()
{
/* Starting PHP 5.4 (dotdeb), maybe earlier for some version/distrib
/*
* This prefers to Starting PHP 5.4 (dotdeb), maybe earlier for some version/distrib
* seems MySQL connection using mysqli driver get lost when fork.
* Need to unset it so that child process recreate it.
*
* Not needed if using mysql driver (but it's deprecated starting PHP 5.5)
*
* @todo FIXME cleaner way to do it ?
*/
global $_DB_DATAOBJECT;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment