@@ -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
@@ -160,35 +158,6 @@ PHP settings: upload_max_filesize and post_max_size. Read more about PHP
160158settings at https://github.com/roundcube/roundcubemail/wiki/Installation#php-configuration.
161159
162160
163- SECURE YOUR INSTALLATION
164- ========================
165-
166- Access through the webserver to the following directories should be denied:
167-
168- /config
169- /temp
170- /logs
171-
172- Roundcube uses .htaccess files to protect these directories, so be sure to
173- allow override of the Limit directives to get them taken into account. The
174- package also ships a .htaccess file in the root directory which defines some
175- rewrite rules. In order to properly secure your installation, please enable
176- mod_rewrite for Apache webserver and double check access to the above listed
177- directories and their contents is denied.
178-
179- NOTE: In Apache 2.4, support for .htaccess files has been disabled by
180- default. Therefore you first need to enable this in your Apache main or
181- virtual host config by with:
182-
183- AllowOverride all
184-
185- For non-apache web servers add equivalent configuration parameters to deny
186- direct access to these private resources.
187-
188- It is also recommended to change the document root to <install path>/public_html
189- after installation if Roundcube runs at root of a dedicated virtual host. This
190- will automatically keep sensitive files out of reach for http requests.
191-
192161CONTENT-SECURITY-POLICY
193162-----------------------
194163
@@ -207,73 +176,8 @@ please refer to the instructions in UPGRADING guide.
207176OPTIMISING
208177==========
209178
210- There are two forms of optimization here, compression and caching, both aimed
211- at increasing an end user's experience using Roundcube Webmail. Compression
212- allows the static web pages to be delivered with less bandwidth. The index.php
213- of Roundcube Webmail already enables compression on its output. The settings
214- below allow compression to occur for all static files. Caching sets HTTP
215- response headers that enable a user's web client to understand what is static
216- and how to cache it.
217-
218- The caching directives used are:
219- * Etags - sets at tag so the client can request is the page has changed
220- * Cache-control - defines the age of the page and that the page is 'public'
221- This enables clients to cache javascript files that don't have private
222- information between sessions even if using HTTPS. It also allows proxies
223- to share the same cached page between users.
224- * Expires - provides another hint to increase the lifetime of static pages.
225-
226- For more information refer to RFC 2616.
227-
228- Side effects:
229- -------------
230- These directives are designed for production use. If you are using this in
231- a development environment you may get horribly confused if your webclient
232- is caching stuff that you changed on the server. Disabling the expires
233- parts below should save you some grief.
234-
235- If you are changing the skins, it is recommended that you copy content to
236- a different directory apart from 'default'.
237-
238- Apache:
239- -------
240- To enable these features in apache the following modules need to be enabled:
241- * mod_deflate
242- * mod_expires
243- * mod_headers
244-
245- The optimization is already included in the .htaccess file in the top
246- directory of your installation.
247-
248- Lighttpd:
249- ---------
250- With Lighttpd the addition of Expire: tags by mod_expire is incompatible with
251- the addition of "Cache-control: public". Using Cache-control 'public' is
252- used below as it is assumed to give a better caching result.
253-
254- Enable modules in server.modules:
255- "mod_setenv"
256- "mod_compress"
257-
258- Mod_compress is a server side cache of compressed files to improve its performance.
259-
260- $HTTP["host"] == "www.example.com" {
261-
262- static-file.etags = "enable"
263- # http://redmine.lighttpd.net/projects/lighttpd/wiki/Etag.use-mtimeDetails
264- etag.use-mtime = "enable"
265-
266- # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModSetEnv
267- $HTTP["url"] =~ "^/roundcubemail/(plugins|skins|program)" {
268- setenv.add-response-header = ( "Cache-Control" => "public, max-age=2592000")
269- }
270-
271- # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModCompress
272- # set compress.cache-dir to somewhere outside the docroot.
273- compress.cache-dir = var.statedir + "/cache/compress"
274-
275- compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml", "image/gif", "image/png")
276- }
179+ Roundcube can be further optimized by using HTTP compression and caching.
180+ HTTP server setup is out of scope for this manual. (TODO: wiki page).
277181
278182
279183KNOWN ISSUES
0 commit comments