Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 217 lines (163 sloc) 7.843 kb
a898459 Thomas B. Fix wrong Postgres setup instructions in INSTALL
thomascube authored
1 INTRODUCTION
2 ============
3
4 This file describes the basic steps to install RoundCube Webmail on your
5 web server. For additional information, please also consult the project's
83ce4bb Thomas B. Correct/clarify installation hints
thomascube authored
6 wiki page at http://trac.roundcube.net/wiki
7
4e17e6c Thomas B. Initial revision
thomascube authored
8
535da27 Thomas B. Updated installation instructions
thomascube authored
9 REQUIREMENTS
10 ============
11
1fb2c8e Thomas B. Cast to array because this could be empty; update requirements descripti...
thomascube authored
12 * The Apache or Lighttpd Webserver
535da27 Thomas B. Updated installation instructions
thomascube authored
13 * .htaccess support allowing overrides for DirectoryIndex
47124c2 Thomas B. Changed codebase to PHP5 with autoloader + added some new classes from t...
thomascube authored
14 * PHP Version 5.2 or greater including
0f96874 Aleksander Machniak - update requirements, remove GD check
alecpl authored
15 - PCRE, DOM, JSON, XML, Session, Sockets (required)
1fb2c8e Thomas B. Cast to array because this could be empty; update requirements descripti...
thomascube authored
16 - libiconv (recommended)
0f96874 Aleksander Machniak - update requirements, remove GD check
alecpl authored
17 - mbstring, fileinfo, mcrypt (optional)
91790e4 Aleksander Machniak - Fix attachment excessive memory use, support messages of any size (#14...
alecpl authored
18 * PEAR packages distributed with Roundcube or external:
19 - MDB2 2.5.0 or newer
20 - Mail_Mime 1.6.0 or newer
21 - Net_SMTP 1.4.1 or newer
7d34064 Aleksander Machniak - small update
alecpl authored
22 * php.ini options (see .htaccess file):
535da27 Thomas B. Updated installation instructions
thomascube authored
23 - error_reporting E_ALL & ~E_NOTICE (or lower)
7d34064 Aleksander Machniak - small update
alecpl authored
24 - memory_limit>16MB (increase as suitable to support large attachments)
0677630 Aleksander Machniak - updated php.ini settings requirements
alecpl authored
25 - file_uploads enabled (for attachment upload features)
26 - session.auto_start disabled
27 - zend.ze1_compatibility_mode disabled
7d34064 Aleksander Machniak - small update
alecpl authored
28 - suhosin.session.encrypt disabled
29 - mbstring.func_overload disabled
3a01c39 Aleksander Machniak - small doc fixed (#1485133)
alecpl authored
30 * PHP compiled with OpenSSL to connect to IMAPS and to use the spell checker
0f96874 Aleksander Machniak - update requirements, remove GD check
alecpl authored
31 * A MySQL, PostgreSQL or MSSQL database engine or the SQLite extension for PHP
1fb2c8e Thomas B. Cast to array because this could be empty; update requirements descripti...
thomascube authored
32 * One of the above databases with permission to create tables
7d34064 Aleksander Machniak - small update
alecpl authored
33 * An SMTP server (recommended) or PHP configured for mail delivery
535da27 Thomas B. Updated installation instructions
thomascube authored
34
35
4e17e6c Thomas B. Initial revision
thomascube authored
36 INSTALLATION
37 ============
38
39 1. Decompress and put this folder somewhere inside your document root
10a6997 Thomas B. Added localized messages to client and check form input
thomascube authored
40 2. Make sure that the following directories (and the files within)
41 are writable by the webserver
4e17e6c Thomas B. Initial revision
thomascube authored
42 - /temp
43 - /logs
10a6997 Thomas B. Added localized messages to client and check form input
thomascube authored
44 3. Create a new database and a database user for RoundCube (see DATABASE SETUP)
967b342 Thomas B. Disable installer by default; add config option to enable it again
thomascube authored
45 4. Point your browser to http://url-to-roundcube/installer/
b8ae99a Aleksander Machniak - Fix endless loop on error response for APPEND command (#1486060)
alecpl authored
46 5. Follow the instructions of the install script (or see MANUAL CONFIGURATION)
190e97e Thomas B. Fix database initialization and check write access on the DB; update INS...
thomascube authored
47 6. After creating and testing the configuration, remove the installer directory
42b1135 Thomas B. Several bugfixes and feature improvements
thomascube authored
48 7. Done!
49
50
4b20e28 Thomas B. Don't set php_value error_log in .htaccess by default
thomascube authored
51 CONFIGURATION HINTS
52 ===================
53
54 RoundCube writes internal errors to the 'errors' log file located in the logs
55 directory which can be configured in config/main.inc.php. If you want ordinary
56 PHP errors to be logged there as well, enable the 'php_value error_log' line
57 in the .htaccess file and set the path to the log file accordingly.
58
59
10a6997 Thomas B. Added localized messages to client and check form input
thomascube authored
60 DATABASE SETUP
61 ==============
62
0ba548a Aleksander Machniak - add precise note about UTF-8 in database
alecpl authored
63 Note: Database for RoundCube must use UTF-8 character set.
64
fa898a4 Thomas B. Simplify MYSQL database initialization instructions
thomascube authored
65 * MySQL
66 -------
10a6997 Thomas B. Added localized messages to client and check form input
thomascube authored
67 Setting up the mysql database can be done by creating an empty database,
68 importing the table layout and granting the proper permissions to the
69 roundcube user. Here is an example of that procedure:
70
71 # mysql
ad56004 Aleksander Machniak - added info to create unicode database (#1485687)
alecpl authored
72 > CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
10a6997 Thomas B. Added localized messages to client and check form input
thomascube authored
73 > GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost
6ae6e41 Thomas B. Updated description files and version info
thomascube authored
74 IDENTIFIED BY 'password';
10a6997 Thomas B. Added localized messages to client and check form input
thomascube authored
75 > quit
aade7b9 Thomas B. Finalized 0.1beta2 release
thomascube authored
76
fa898a4 Thomas B. Simplify MYSQL database initialization instructions
thomascube authored
77 # mysql roundcubemail < SQL/mysql.initial.sql
535da27 Thomas B. Updated installation instructions
thomascube authored
78
fa898a4 Thomas B. Simplify MYSQL database initialization instructions
thomascube authored
79 Note 1: 'password' is the master password for the roundcube user. It is strongly
3cf6649 Thomas B. Minor bugfixes posted to the dev-mailing list
thomascube authored
80 recommended you replace this with a more secure password. Please keep in
81 mind: You need to specify this password later in 'config/db.inc.php'.
82
1cded85 Thomas B. Re-design of caching (new database table added\!); some bugfixes; Postgr...
thomascube authored
83
10a6997 Thomas B. Added localized messages to client and check form input
thomascube authored
84 * SQLite
85 --------
50d515a Aleksander Machniak - some hints to use sqlite db (#1485821)
alecpl authored
86 You need sqlite 2 (preferably 2.8) to setup the sqlite db
87 (sqlite 3.x also doesn't work at the moment). Here is
10a6997 Thomas B. Added localized messages to client and check form input
thomascube authored
88 an example how you can setup the sqlite.db for roundcube:
89
90 # sqlite -init SQL/sqlite.initial.sql sqlite.db
d7f49d6 Thomas B. Speedup UI by using CSS sprites and etags/expires/deflate for static fil...
thomascube authored
91 Loading resources from SQL/sqlite.initial.sql
92 SQLite version 2.8.16
93 Enter ".help" for instructions
94 sqlite> .exit
95 # chmod o+rw sqlite.db
10a6997 Thomas B. Added localized messages to client and check form input
thomascube authored
96
97 Make sure your configuration points to the sqlite.db file and that the
83ce4bb Thomas B. Correct/clarify installation hints
thomascube authored
98 webserver can write to the file and the directory containing the file.
10a6997 Thomas B. Added localized messages to client and check form input
thomascube authored
99
100
1cded85 Thomas B. Re-design of caching (new database table added\!); some bugfixes; Postgr...
thomascube authored
101 * PostgreSQL
102 ------------
a898459 Thomas B. Fix wrong Postgres setup instructions in INSTALL
thomascube authored
103 To use RoundCube with PostgreSQL support you have to follow these
104 simple steps, which have to be done as the postgres system user (or
1cded85 Thomas B. Re-design of caching (new database table added\!); some bugfixes; Postgr...
thomascube authored
105 which ever is the database superuser):
106
a898459 Thomas B. Fix wrong Postgres setup instructions in INSTALL
thomascube authored
107 $ createuser roundcube
ad56004 Aleksander Machniak - added info to create unicode database (#1485687)
alecpl authored
108 $ createdb -O roundcube -E UNICODE roundcubemail
1cded85 Thomas B. Re-design of caching (new database table added\!); some bugfixes; Postgr...
thomascube authored
109 $ psql roundcubemail
110
111 roundcubemail =# ALTER USER roundcube WITH PASSWORD 'the_new_password';
a898459 Thomas B. Fix wrong Postgres setup instructions in INSTALL
thomascube authored
112 roundcubemail =# \c - roundcube
1cded85 Thomas B. Re-design of caching (new database table added\!); some bugfixes; Postgr...
thomascube authored
113 roundcubemail => \i SQL/postgres.initial.sql
114
a898459 Thomas B. Fix wrong Postgres setup instructions in INSTALL
thomascube authored
115 All this has been tested with PostgreSQL 8.x and 7.4.x. Older
1cded85 Thomas B. Re-design of caching (new database table added\!); some bugfixes; Postgr...
thomascube authored
116 versions don't have a -O option for the createdb, so if you are
117 using that version you'll have to change ownership of the DB later.
118
119
190e97e Thomas B. Fix database initialization and check write access on the DB; update INS...
thomascube authored
120 MANUAL CONFIGURATION
121 ====================
535da27 Thomas B. Updated installation instructions
thomascube authored
122
a898459 Thomas B. Fix wrong Postgres setup instructions in INSTALL
thomascube authored
123 First of all, rename the files config/*.inc.php.dist to config/*.inc.php.
124 You can then change these files according to your environment and your needs.
125 Details about the config parameters can be found in the config files.
190e97e Thomas B. Fix database initialization and check write access on the DB; update INS...
thomascube authored
126 See http://trac.roundcube.net/wiki/Howto_Install for even more guidance.
535da27 Thomas B. Updated installation instructions
thomascube authored
127
4b9efbb Fixes interface lock-up issues and minor bugs (richs)
svncommit authored
128 You can also modify the default .htaccess file. This is necessary to
129 increase the allowed size of file attachments, for example:
130 php_value upload_max_filesize 2M
535da27 Thomas B. Updated installation instructions
thomascube authored
131
83ce4bb Thomas B. Correct/clarify installation hints
thomascube authored
132
42b1135 Thomas B. Several bugfixes and feature improvements
thomascube authored
133 UPGRADING
134 =========
6ae6e41 Thomas B. Updated description files and version info
thomascube authored
135
42b1135 Thomas B. Several bugfixes and feature improvements
thomascube authored
136 If you already have a previous version of RoundCube installed,
137 please refer to the instructions in UPGRADING guide.
4e17e6c Thomas B. Initial revision
thomascube authored
138
139
d7f49d6 Thomas B. Speedup UI by using CSS sprites and etags/expires/deflate for static fil...
thomascube authored
140 OPTIMISING
141 ==========
142
143 There are two forms of optimisation here, compression and caching, both aimed
144 at increasing an end user's experience using RoundCube Webmail. Compression
145 allows the static web pages to be delivered with less bandwidth. The index.php
146 of RoundCube Webmail already enables compression on its output. The settings
147 below allow compression to occur for all static files. Caching sets HTTP
148 response headers that enable a user's web client to understand what is static
149 and how to cache it.
150
151 The caching directives used are:
152 * Etags - sets at tag so the client can request is the page has changed
153 * Cache-control - defines the age of the page and that the page is 'public'
154 This enables clients to cache javascript files that don't have private
155 information between sessions even if using HTTPS. It also allows proxies
156 to share the same cached page between users.
157 * Expires - provides another hint to increase the lifetime of static pages.
158
159 For more information refer to RFC 2616.
160
161 Side effects:
162 -------------
163 These directives are designed for production use. If you are using this in
164 a development environment you may get horribly confused if your webclient
165 is caching stuff that you changed on the server. Disabling the expires
166 parts below should save you some grief.
167
168 If you are changing the skins, it is recommended that you copy content to
169 a different directory apart from 'default'.
170
171 Apache:
172 -------
173 To enable these features in apache the following modules need to be enabled:
a5c2ad2 Aleksander Machniak - corrected apache modules names
alecpl authored
174 * mod_deflate
175 * mod_expires
d7f49d6 Thomas B. Speedup UI by using CSS sprites and etags/expires/deflate for static fil...
thomascube authored
176 * mod_headers
177
178 The optimisation is already included in the .htaccess file in the top
179 directory of your installation.
180
181 If you are using Apache version 2.2.9 and later, in the .htaccess file
182 change the 'append' word to 'merge' for a more correct response. Keeping
183 as 'append' shouldn't cause any problems though changing to merge will
184 eliminate the possibility of duplicate 'public' headers in Cache-control.
185
186 Lighttpd:
187 ---------
188 With Lightty the addition of Expire: tags by mod_expire is incompatible with
189 the addition of "Cache-control: public". Using Cache-control 'public' is
190 used below as it is assumed to give a better caching result.
191
192 Enable modules in server.modules:
193 "mod_setenv"
194 "mod_compress"
195
196 Mod_compress is a server side cache of compressed files to improve its performance.
197
198 $HTTP["host"] == "www.example.com" {
199
200 static-file.etags = "enable"
201 # http://redmine.lighttpd.net/projects/lighttpd/wiki/Etag.use-mtimeDetails
202 etag.use-mtime = "enable"
203
204 # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModSetEnv
205 $HTTP["url"] =~ "^/roundcubemail/(plugins|skins|program)" {
206 setenv.add-response-header = ( "Cache-Control" => "public, max-age=2592000")
207 }
208
209 # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModCompress
210 # set compress.cache-dir to somewhere outside the docroot.
211 compress.cache-dir = var.statedir + "/cache/compress"
212
213 compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml", "image/gif", "image/png")
214 }
215
216
Something went wrong with that request. Please try again.