From 5143c47e0feeff92ac3dabf9277e23c13a6379f0 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Wed, 18 Nov 2015 07:28:40 -0500 Subject: [PATCH] Fix rcube_utils::words_match() to work with mixed/invalid/binary content (T844) --- INSTALL | 121 +++++++++++++++++++++++++--------------- 1 files changed, 76 insertions(+), 45 deletions(-) diff --git a/INSTALL b/INSTALL index c2cb29c..5fe304d 100644 --- a/INSTALL +++ b/INSTALL @@ -11,54 +11,63 @@ * The Apache, Lighttpd, Cherokee or Hiawatha web server * .htaccess support allowing overrides for DirectoryIndex -* PHP Version 5.2.1 or greater including - - PCRE, DOM, JSON, XML, Session, Sockets (required) - - libiconv (recommended) - - mbstring, fileinfo, mcrypt (optional) +* PHP Version 5.3.7 or greater (but not PHP 7) including + - PCRE, DOM, JSON, Session, Sockets (required) + - PHP Data Objects (PDO) with driver for either MySQL, PostgreSQL or SQLite (required) + - Libiconv, Zip (recommended) + - OpenSSL, Fileinfo, Mcrypt, mbstring (optional) * PEAR packages distributed with Roundcube or external: - - MDB2 2.5.0 or newer - - Mail_Mime 1.8.1 or newer - - Mail_mimeDecode 1.5.5 or newer - - Net_SMTP 1.4.2 or newer + - Mail_Mime 1.9.0 or newer + - Net_SMTP (latest from https://github.com/pear/Net_SMTP/) - 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.2.0 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 - - zend.ze1_compatibility_mode disabled - suhosin.session.encrypt disabled - mbstring.func_overload disabled - magic_quotes_runtime disabled - magic_quotes_sybase disabled -* PHP compiled with OpenSSL to connect to IMAPS and to use the spell checker -* A MySQL (4.0.8 or newer), PostgreSQL, MSSQL database engine - or the SQLite extension for PHP + - register_globals disabled (PHP < 5.4) +* PHP compiled with OpenSSL to use secure (tls/ssl) connections and to use the spell checker +* A MySQL (4.0.8 or newer), PostgreSQL, MS SQL Server (2005 or newer) database engine + 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 (https://getcomposer.org) INSTALLATION ============ 1. Decompress and put this folder somewhere inside your document root -2. Make sure that the following directories (and the files within) +2. Install dependencies using composer: + - get composer from https://getcomposer.org/download/ + - rename the composer.json-dist file into composer.json + - if you want to use LDAP address books, enable the LDAP libraries in your + composer.json file by moving the items from "suggest" to the "require" + section (remove the explanation texts after the version!). + - run `php composer.phar install --no-dev` +3. 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. Done! +4. Create a new database and a database user for Roundcube (see DATABASE SETUP) +5. Point your browser to http://url-to-roundcube/installer/ +6. Follow the instructions of the install script (or see MANUAL CONFIGURATION) +7. After creating and testing the configuration, remove the installer directory +8. Check Known Issues section of this file CONFIGURATION HINTS =================== Roundcube writes internal errors to the 'errors' log file located in the logs -directory which can be configured in config/main.inc.php. If you want ordinary +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. @@ -94,18 +103,9 @@ * SQLite -------- -You need sqlite 2 (preferably 2.8) to setup the sqlite db -(sqlite 3.x also doesn't work at the moment). Here is -an example how you can setup the sqlite.db for roundcube: - -# sqlite -init SQL/sqlite.initial.sql sqlite.db -Loading resources from SQL/sqlite.initial.sql -SQLite version 2.8.16 -Enter ".help" for instructions -sqlite> .exit -# chmod o+rw sqlite.db - -Make sure your configuration points to the sqlite.db file and that the +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. @@ -115,38 +115,64 @@ simple steps, which have to be done as the postgres system user (or which ever is the database superuser): -$ createuser roundcube +$ createuser -P roundcube $ createdb -O roundcube -E UNICODE roundcubemail -$ psql roundcubemail +$ psql -U roundcube -f SQL/postgres.initial.sql roundcubemail -roundcubemail =# ALTER USER roundcube WITH PASSWORD 'the_new_password'; -roundcubemail =# \c - roundcube -roundcubemail => \i SQL/postgres.initial.sql +Note: in some system configurations you might need to add '-U postgres' to +createuser and createdb commands. -All this has been tested with PostgreSQL 8.x and 7.4.x. Older -versions don't have a -O option for the createdb, so if you are -using that version you'll have to change ownership of the DB later. + +* 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 ----------------- -Do keep your database slick and clean we recommend to periodically execute +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, rename the files config/*.inc.php.dist to config/*.inc.php. -You can then change these files according to your environment and your needs. -Details about the config parameters can be found in the config files. -See http://trac.roundcube.net/wiki/Howto_Install for even more guidance. +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 @@ -233,3 +259,8 @@ } +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). -- Gitblit v1.9.1