]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - INSTALL
Merge branch 'master' into social-master
[quix0rs-gnu-social.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index f9fce18a7b78af9d7cb8d732421039ed6615a253..0483320a78bc08795afbde082346043a583d37a9 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,15 +1,34 @@
+TABLE OF CONTENTS
+=================
+* Prerequisites
+    - PHP modules
+    - Better performance
+* Installation
+    - Getting it up and running
+    - Fancy URLs
+    - Sphinx
+    - SMS
+    - Queues and daemons
+    - Themes
+    - Translation
+    - Backups
+    - Private
+
 Prerequisites
 =============
 
+PHP modules
+-----------
+
 The following software packages are *required* for this software to
 run correctly.
 
-- PHP 5.3.2+    For newer versions, some functions that are used may be
+- PHP 5.4+      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
+- MariaDB 5   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.
+                worked well. It is also possible to run MySQL 5.5+.
 - 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)
@@ -18,23 +37,26 @@ run correctly.
 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 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)
+- openssl       (compiled in for Debian, enabled manually in Arch Linux)
+- php5-curl     Fetching files by HTTP.
+- php5-gd       Image manipulation (scaling).
+- php5-gmp      For Salmon signatures (part of OStatus).
+- php5-json     For WebFinger lookups and more.
+- php5-mysqlnd  The native driver for PHP5 MariaDB connections. If you
+                  use MySQL, 'mysql' or 'mysqli' may work.
+
+The above package names are for Debian based systems. In the case of
+Arch Linux, PHP is compiled with support for most extensions but they
+require manual enabling in the relevant php.ini file (mostly php5-gmp).
 
 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.
+- opcache       Improves performance a _lot_. Included in PHP, must be
+                enabled manually in php.ini for most distributions. Find
+                and set at least:  opcache.enable=1
 - 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
@@ -42,62 +64,18 @@ For some functionality, you will also need the following extensions:
                 Sphinx server to serve the search queries.
 - gettext       For multiple languages. Default on many PHP installs;
                 will be emulated if not present.
+- exif          For thumbnails to be properly oriented.
 
-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
-------------------
-
-A number of external PHP libraries are used to provide basic
-functionality and optional functionality for your system. For your
-convenience, they are available in the "extlib" directory of this
-package, and you do not have to download and install them. However,
-you may want to keep them up-to-date with the latest upstream version,
-and the URLs are listed here for your convenience.
-
-- DB_DataObject http://pear.php.net/package/DB_DataObject
-- Validate http://pear.php.net/package/Validate
-- OpenID by Janrain, http://janrain.com/openid-enabled/
-- PEAR DB. Although this is an older data access system (new
-  packages should use PDO), the OpenID libraries depend on PEAR DB
-  or MDB2.
-- OAuth.php from http://oauth.googlecode.com/svn/code/php/
-- markdown.php from http://michelf.com/projects/php-markdown/
-- PEAR Mail, for sending out mail notifications
-  http://pear.php.net/package/Mail
-- PEAR Net_SMTP, if you use the SMTP factory for notifications
-  http://pear.php.net/package/Net_SMTP
-- PEAR Net_Socket, if you use the SMTP factory for notifications
-  http://pear.php.net/package/Net_Socket
-- XMPPHP, the follow-up to Class.Jabber.php. Probably the best XMPP
-  library available for PHP. http://xmpphp.googlecode.com/. Note that
-  as of this writing the version of this library that is available in
-  the extlib directory is *significantly different* from the upstream
-  version (patches have been submitted). Upgrading to the upstream
-  version may render your StatusNet site unable to send or receive XMPP
-  messages.
-- Facebook library. Used for the Facebook application.
-- PEAR Validate is used for URL and email validation.
-- Console_GetOpt for parsing command-line options.
-  predecessor to OStatus.
-- HTTP_Request2, a library for making HTTP requests.
-- PEAR Net_URL2 is an HTTP_Request2 dependency.
-
-A design goal of GNU Social is that the basic Web functionality should
-work on even the most restrictive commercial hosting services.
-However, additional functionality, such as receiving messages by XMPP,
-require that you be able to run long-running processes on your account.
-In addition, posting by email require that you be able to install a mail
-filter in your mail server.
+You may also experience better performance from your site if you configure
+a PHP cache/accelerator. Most distributions come with "opcache" support.
+Enable it in your php.ini, it is documented there together with its settings.
 
 Installation
 ============
 
+Getting it up and running
+-------------------------
+
 Installing the basic GNU Social web component is relatively easy,
 especially if you've previously installed PHP/MariaDB packages.
 
@@ -305,64 +283,7 @@ For this to work, there *must* be a domain or sub-domain for which all
 
        $config['mail']['domain'] = 'yourdomain.example.net';
 
-At this point, post-by-email and post-by-SMS-gateway should work. Note
-that if your mail server is on a different computer from your email
-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.
-
-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.
-
-   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.
-
-3. Configure your site's XMPP variables, as described below in the
-   configuration section.
-
-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.
-
-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.
-
-Public feed
------------
-
-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.
-
-To configure a downstream site to receive your public stream, add
-their "JID" (Jabber ID) to your config.php as follows:
-
-    $config['xmpp']['public'][] = 'downstream@example.net';
 
-(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.
 
 Queues and daemons
 ------------------
@@ -382,17 +303,19 @@ This plugin is enabled by default. It tries its best to do background
 job during regular HTTP requests, like API or HTML pages calls.
 
 Since queueing system is enabled by default, notices to be broadcasted
-will be stored, by default, into DB (table queue_items).
+will be stored, by default, into DB (table queue_item).
 
 Each time it can, OpportunisticQM will try to handle some of them.
 
-This is a good solution wether you:
+This is a good solution whether you:
 
 * have no access to command line (shared hosting)
-* do not want to deal with long-running PHP process
-* run a low traffic GnuSocial instance
+* do not want to deal with long-running PHP processes
+* run a low traffic GNU social instance
 
-In other case, you really should consider using queuedaemon.
+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.
 
 ### queuedaemon
 
@@ -481,10 +404,6 @@ subdirectory with the name of your theme. Each theme can have the
 following files:
 
 display.css: a CSS2 file for "default" styling for all browsers.
-ie6.css: a CSS2 file for override styling for fixing up Internet
-    Explorer 6.
-ie7.css: a CSS2 file for override styling for fixing up Internet
-    Explorer 7.
 logo.png: a logo image for the site.
 default-avatar-profile.png: a 96x96 pixel image to use as the avatar for
     users who don't upload their own.