| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 | 
							- INTRODUCTION
 - ============
 - 
 - This file describes the basic steps to install Roundcube Webmail on your
 - web server. For additional information, please also consult the project's
 - wiki page at http://trac.roundcube.net/wiki
 - 
 - 
 - REQUIREMENTS
 - ============
 - 
 - * The Apache, Lighttpd, Cherokee or Hiawatha web server
 - * .htaccess support allowing overrides for DirectoryIndex
 - * PHP Version 5.3.7 or greater including:
 -    - PCRE, DOM, JSON, Session, Sockets, OpenSSL, Mbstring (required)
 -    - PHP PDO with driver for either MySQL, PostgreSQL, SQL Server, Oracle or SQLite (required)
 -    - Libiconv, Zip, Fileinfo, Intl, Exif (recommended)
 -    - LDAP for LDAP addressbook support (optional)
 - * PEAR and PEAR packages distributed with Roundcube or external:
 -    - Mail_Mime 1.10.0 or newer
 -    - Net_SMTP 1.7.1 or newer
 -    - Net_Socket 1.0.12 or newer
 -    - Net_IDNA2 0.1.1 or newer
 -    - Auth_SASL 1.0.6 or newer
 -    - Net_Sieve 1.3.2 or newer (for managesieve plugin)
 -    - Crypt_GPG 1.4.1 or newer (for enigma plugin)
 - * php.ini options (see .htaccess file):
 -    - error_reporting E_ALL & ~E_NOTICE (or lower)
 -    - memory_limit > 16MB (increase as suitable to support large attachments)
 -    - file_uploads enabled (for attachment upload features)
 -    - session.auto_start disabled
 -    - suhosin.session.encrypt disabled
 -    - mbstring.func_overload disabled
 -    - magic_quotes_runtime disabled
 -    - magic_quotes_sybase disabled
 -    - register_globals disabled (PHP < 5.4)
 - * A MySQL (4.0.8 or newer), PostgreSQL, MS SQL Server (2005 or newer), Oracle
 -   database or SQLite support in PHP
 - * One of the above databases with permission to create tables
 - * An SMTP server (recommended) or PHP configured for mail delivery
 - * Composer installed either locally or globally (optional, for plugin installation)
 - 
 - 
 - INSTALLATION
 - ============
 - 
 - 1. Decompress and put this folder somewhere inside your document root
 - 2. Make sure that the following directories (and the files within)
 -    are writable by the webserver
 -    - /temp
 -    - /logs
 - 3. Create a new database and a database user for Roundcube (see DATABASE SETUP)
 - 4. Point your browser to http://url-to-roundcube/installer/
 - 5. Follow the instructions of the install script (or see MANUAL CONFIGURATION)
 - 6. After creating and testing the configuration, remove the installer directory
 - 7. Check Known Issues section of this file
 - 
 - 
 - CONFIGURATION HINTS
 - ===================
 - 
 - IMPORTANT! Read all comments in defaults.inc.php, understand them
 - and configure your installation to be not surprised by default behaviour.
 - 
 - Roundcube writes internal errors to the 'errors' log file located in the logs
 - directory which can be configured in config/config.inc.php. If you want ordinary
 - PHP errors to be logged there as well, enable the 'php_value error_log' line
 - in the .htaccess file and set the path to the log file accordingly.
 - 
 - By default the session_path settings of PHP are not modified by Roundcube.
 - However if you want to limit the session cookies to the directory where
 - Roundcube resides you can uncomment and configure the according line
 - in the .htaccess file.
 - 
 - 
 - DATABASE SETUP
 - ==============
 - 
 - Note: Database for Roundcube must use UTF-8 character set.
 - Note: See defaults.inc.php file for examples of DSN configuration.
 - 
 - * MySQL
 - -------
 - Setting up the mysql database can be done by creating an empty database,
 - importing the table layout and granting the proper permissions to the
 - roundcube user. Here is an example of that procedure:
 - 
 - # mysql
 - > CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
 - > GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost
 -     IDENTIFIED BY 'password';
 - > quit
 - 
 - # mysql roundcubemail < SQL/mysql.initial.sql
 - 
 - Note 1: 'password' is the master password for the roundcube user. It is strongly
 - recommended you replace this with a more secure password. Please keep in
 - mind: You need to specify this password later in 'config/db.inc.php'.
 - 
 - 
 - * SQLite
 - --------
 - Versions of sqlite database engine older than 3 aren't supported.
 - Database file and structure is created automatically by Roundcube.
 - Make sure your configuration points to some file location and that the
 - webserver can write to the file and the directory containing the file.
 - 
 - 
 - * PostgreSQL
 - ------------
 - To use Roundcube with PostgreSQL support you have to follow these
 - simple steps, which have to be done as the postgres system user (or
 - which ever is the database superuser):
 - 
 - $ createuser -P roundcube
 - $ createdb -O roundcube -E UNICODE roundcubemail
 - $ psql -U roundcube -f SQL/postgres.initial.sql roundcubemail
 - 
 - Note: in some system configurations you might need to add '-U postgres' to
 - createuser and createdb commands.
 - 
 - 
 - * Microsoft SQL Server
 - ----------------------
 - Language/locale of the database must be set to us_english (1033). More info
 - on this at http://trac.roundcube.net/ticket/1488918.
 - 
 - 
 - Database cleaning
 - -----------------
 - To keep your database slick and clean we recommend to periodically execute
 - bin/cleandb.sh which finally removes all records that are marked as deleted.
 - Best solution is to install a cronjob running this script daily.
 - 
 - 
 - MANUAL CONFIGURATION
 - ====================
 - 
 - First of all, copy the sample configuration file config/config.inc.php.sample
 - to config/config.inc.php and make the necessary adjustments according to your
 - environment and your needs. More configuration options can be copied from the
 - config/defaults.inc.php file into your local config.inc.php file as needed.
 - Read the comments above the individual configuration options to find out what
 - they do or read http://trac.roundcube.net/wiki/Howto_Install for even more
 - guidance.
 - 
 - You can also modify the default .htaccess file. This is necessary to
 - increase the allowed size of file attachments, for example:
 - 	php_value       upload_max_filesize     2M
 - 
 - 
 - SECURE YOUR INSTALLATION
 - ========================
 - 
 - Access through the webserver to the following directories should be denied:
 - 
 -   /config
 -   /temp
 -   /logs
 - 
 - Roundcube uses .htaccess files to protect these directories, so be sure to
 - allow override of the Limit directives to get them taken into account. The
 - package also ships a .htaccess file in the root directory which defines some
 - rewrite rules. In order to properly secure your installation, please enable
 - mod_rewrite for Apache webserver and double check access to the above listed
 - directories and their contents is denied.
 - 
 - NOTE: In Apache 2.4, support for .htaccess files has been disabled by
 - default. Therefore you first need to enable this in your Apache main or
 - virtual host config by with:
 - 
 -  AllowOverride all
 - 
 - 
 - UPGRADING
 - =========
 - 
 - If you already have a previous version of Roundcube installed,
 - please refer to the instructions in UPGRADING guide.
 - 
 - 
 - OPTIMISING
 - ==========
 - 
 - There are two forms of optimisation here, compression and caching, both aimed
 - at increasing an end user's experience using Roundcube Webmail. Compression
 - allows the static web pages to be delivered with less bandwidth. The index.php
 - of Roundcube Webmail already enables compression on its output. The settings
 - below allow compression to occur for all static files. Caching sets HTTP 
 - response headers that enable a user's web client to understand what is static
 - and how to cache it.
 - 
 - The caching directives used are:
 -  * Etags - sets at tag so the client can request is the page has changed
 -  * Cache-control - defines the age of the page and that the page is 'public'
 -    This enables clients to cache javascript files that don't have private 
 -    information between sessions even if using HTTPS. It also allows proxies
 -    to share the same cached page between users.
 -  * Expires - provides another hint to increase the lifetime of static pages.
 - 
 - For more information refer to RFC 2616.
 - 
 - Side effects:
 - -------------
 - These directives are designed for production use. If you are using this in
 - a development environment you may get horribly confused if your webclient
 - is caching stuff that you changed on the server. Disabling the expires 
 - parts below should save you some grief.
 - 
 - If you are changing the skins, it is recommended that you copy content to 
 - a different directory apart from 'default'.
 - 
 - Apache:
 - -------
 - To enable these features in apache the following modules need to be enabled:
 -  * mod_deflate
 -  * mod_expires
 -  * mod_headers
 - 
 - The optimisation is already included in the .htaccess file in the top 
 - directory of your installation.
 - 
 - If you are using Apache version 2.2.9 and later, in the .htaccess file
 - change the 'append' word to 'merge' for a more correct response. Keeping
 - as 'append' shouldn't cause any problems though changing to merge will 
 - eliminate the possibility of duplicate 'public' headers in Cache-control.
 - 
 - Lighttpd:
 - ---------
 - With Lightty the addition of Expire: tags by mod_expire is incompatible with
 - the addition of "Cache-control: public". Using Cache-control 'public' is 
 - used below as it is assumed to give a better caching result.
 - 
 - Enable modules in server.modules:
 -     "mod_setenv"
 -     "mod_compress"
 - 
 - Mod_compress is a server side cache of compressed files to improve its performance.
 - 
 - $HTTP["host"] == "www.example.com" {
 - 
 -     static-file.etags = "enable"
 -     # http://redmine.lighttpd.net/projects/lighttpd/wiki/Etag.use-mtimeDetails
 -     etag.use-mtime = "enable"
 - 
 -     # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModSetEnv
 -     $HTTP["url"] =~ "^/roundcubemail/(plugins|skins|program)" {
 -         setenv.add-response-header  = ( "Cache-Control" => "public, max-age=2592000")
 -     }
 - 
 -     # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModCompress
 -     # set compress.cache-dir to somewhere outside the docroot.
 -     compress.cache-dir   = var.statedir + "/cache/compress"
 - 
 -     compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml", "image/gif", "image/png")
 - }
 - 
 - 
 - KNOWN ISSUES
 - ============
 - 
 - Installations with uw-imap server should set imap_disabled_caps = array('ESEARCH')
 - in main configuration file. ESEARCH implementation in this server is broken (#1489184).
 
 
  |