]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - INSTALL
Twitter Import + avatar fixes (cleaning up + fixing)
[quix0rs-gnu-social.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 75237fa1fe97db747dc6da6e75d2c0834404f63f..0bfb2778464bba1812af3a16d0006f08fe49e9a1 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -4,47 +4,50 @@ Prerequisites
 The following software packages are *required* for this software to
 run correctly.
 
-- PHP 5.2.3+. It may be possible to run this software on earlier
-  versions of PHP, but many of the functions used are only available
-  in PHP 5.2 or above. 5.2.6 or later is needed for XMPP background
-  daemons on 64-bit platforms. PHP 5.3.x should work correctly in this
-  release, but problems with some plugins are possible.
-- 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
 ------------------
@@ -106,9 +109,9 @@ especially if you've previously installed PHP/MySQL packages.
 1. Unpack the tarball you downloaded on your Web server. Usually a
    command like this will work:
 
-       tar zxf statusnet-1.1.0-alpha1.tar.gz
+       tar zxf statusnet-1.1.1.tar.gz
 
-   ...which will make a statusnet-1.1.0-alpha1 subdirectory in your current
+   ...which will make a statusnet-1.1.1 subdirectory in your current
    directory. (If you don't have shell access on your Web server, you
    may have to unpack the tarball on your local computer and FTP the
    files to the server.)
@@ -116,7 +119,7 @@ especially if you've previously installed PHP/MySQL packages.
 2. Move the tarball to a directory of your choosing in your Web root
    directory. Usually something like this will work:
 
-       mv statusnet-1.1.0-alpha1 /var/www/statusnet
+       mv statusnet-1.1.1 /var/www/statusnet
 
    This will make your StatusNet instance available in the statusnet path of
    your server, like "http://example.net/statusnet". "microblog" or
@@ -382,6 +385,18 @@ 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.
 
+   Modern PHP versions in some operating systems have disabled functions
+   related to forking, which is required for daemons to operate. To make
+   this work, make sure that your php-cli config (/etc/php5/cli/php.ini)
+   does NOT have these functions listed under 'disable_functions':
+
+       * 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
@@ -403,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
 ------