@@ -33,7 +33,7 @@ REQUIREMENTS
3333INSTALLATION
3434============
3535
36- 1. Decompress and put this folder somewhere inside your document root .
36+ 1. Decompress and put this folder somewhere inside your server's filesystem .
3737 Note: Make sure files have proper owner/group for your setup. If you use
3838 tar command `--no-same-owner` option might be helpful.
39392. In case you don't use the so-called "complete" release package,
@@ -46,20 +46,18 @@ INSTALLATION
4646 - run `php composer.phar update --no-dev`
4747 2.2. Install Javascript dependencies by executing `bin/install-jsdeps.sh` script.
4848 2.3. Install some developer tools by executing `npm install`.
49+ 2.4. If you use git sources, compile css files for the Elastic skin as described
50+ in the skins/elastic/README.md file.
49513. Make sure that the following directories (and the files within)
5052 are writable by the webserver
5153 - /temp
5254 - /logs
53554. Create a new database and a database user for Roundcube (see DATABASE SETUP)
54- 5. Point your browser to http://url-to-roundcube/installer/
55- 6. Follow the instructions of the install script (or see MANUAL CONFIGURATION)
56- 7. After creating and testing the configuration, remove the installer directory
57- ------------------------------------------
58- IMPORTANT: REMOVE THE INSTALLER DIRECTORY!
59- ------------------------------------------
60- 8. If you use git sources, compile css files for the Elastic skin as described
61- in the skins/elastic/README.md file.
62- 9. Check Known Issues section of this file
56+ 5. Configure your HTTP server and point it to Roundcube's public_html directory.
57+ This is the document root.
58+ 6. Point your browser to http://url-to-roundcube/installer.php.
59+ 7. Follow the instructions of the install script (or see MANUAL CONFIGURATION).
60+ 8. Check Known Issues section of this file
6361
6462
6563CONFIGURATION HINTS
@@ -161,35 +159,6 @@ PHP settings: upload_max_filesize and post_max_size. Read more about PHP
161159settings at https://github.com/roundcube/roundcubemail/wiki/Installation#php-configuration.
162160
163161
164- SECURE YOUR INSTALLATION
165- ========================
166-
167- Access through the webserver to the following directories should be denied:
168-
169- /config
170- /temp
171- /logs
172-
173- Roundcube uses .htaccess files to protect these directories, so be sure to
174- allow override of the Limit directives to get them taken into account. The
175- package also ships a .htaccess file in the root directory which defines some
176- rewrite rules. In order to properly secure your installation, please enable
177- mod_rewrite for Apache webserver and double check access to the above listed
178- directories and their contents is denied.
179-
180- NOTE: In Apache 2.4, support for .htaccess files has been disabled by
181- default. Therefore you first need to enable this in your Apache main or
182- virtual host config by with:
183-
184- AllowOverride all
185-
186- For non-apache web servers add equivalent configuration parameters to deny
187- direct access to these private resources.
188-
189- It is also recommended to change the document root to <install path>/public_html
190- after installation if Roundcube runs at root of a dedicated virtual host. This
191- will automatically keep sensitive files out of reach for http requests.
192-
193162CONTENT-SECURITY-POLICY
194163-----------------------
195164
@@ -208,73 +177,8 @@ please refer to the instructions in UPGRADING guide.
208177OPTIMISING
209178==========
210179
211- There are two forms of optimization here, compression and caching, both aimed
212- at increasing an end user's experience using Roundcube Webmail. Compression
213- allows the static web pages to be delivered with less bandwidth. The index.php
214- of Roundcube Webmail already enables compression on its output. The settings
215- below allow compression to occur for all static files. Caching sets HTTP
216- response headers that enable a user's web client to understand what is static
217- and how to cache it.
218-
219- The caching directives used are:
220- * Etags - sets at tag so the client can request is the page has changed
221- * Cache-control - defines the age of the page and that the page is 'public'
222- This enables clients to cache javascript files that don't have private
223- information between sessions even if using HTTPS. It also allows proxies
224- to share the same cached page between users.
225- * Expires - provides another hint to increase the lifetime of static pages.
226-
227- For more information refer to RFC 2616.
228-
229- Side effects:
230- -------------
231- These directives are designed for production use. If you are using this in
232- a development environment you may get horribly confused if your webclient
233- is caching stuff that you changed on the server. Disabling the expires
234- parts below should save you some grief.
235-
236- If you are changing the skins, it is recommended that you copy content to
237- a different directory apart from 'default'.
238-
239- Apache:
240- -------
241- To enable these features in apache the following modules need to be enabled:
242- * mod_deflate
243- * mod_expires
244- * mod_headers
245-
246- The optimization is already included in the .htaccess file in the top
247- directory of your installation.
248-
249- Lighttpd:
250- ---------
251- With Lighttpd the addition of Expire: tags by mod_expire is incompatible with
252- the addition of "Cache-control: public". Using Cache-control 'public' is
253- used below as it is assumed to give a better caching result.
254-
255- Enable modules in server.modules:
256- "mod_setenv"
257- "mod_compress"
258-
259- Mod_compress is a server side cache of compressed files to improve its performance.
260-
261- $HTTP["host"] == "www.example.com" {
262-
263- static-file.etags = "enable"
264- # http://redmine.lighttpd.net/projects/lighttpd/wiki/Etag.use-mtimeDetails
265- etag.use-mtime = "enable"
266-
267- # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModSetEnv
268- $HTTP["url"] =~ "^/roundcubemail/(plugins|skins|program)" {
269- setenv.add-response-header = ( "Cache-Control" => "public, max-age=2592000")
270- }
271-
272- # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModCompress
273- # set compress.cache-dir to somewhere outside the docroot.
274- compress.cache-dir = var.statedir + "/cache/compress"
275-
276- compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml", "image/gif", "image/png")
277- }
180+ Roundcube can be further optimized by using HTTP compression and caching.
181+ HTTP server setup is out of scope for this manual. (TODO: wiki page).
278182
279183
280184KNOWN ISSUES
0 commit comments