Description: Cherokee is a flexible, very fast, lightweight Web server. It is implemented entirely in C, and has no dependencies beyond a standard C library. It is embeddable and extensible with plug-ins. It supports on-the-fly configuration by reading files or strings, TLS/SSL (via GNUTLS or OpenSSL), virtual hosts, authentication, cache friendly features, PHP, custom error management, and much more.
Keywords: cherokee web server httpd http

## Index → Getting started → Installation

## Installation on Unix

If you have a prepackaged version of Cherokee available in your Unix/Linux favorite variant, please use the provided installation mechanism of choice. This will provide you with automatic bootup scripts, consistency and dependency checks, and an easy upgrade path tailored to your system whenever a new package is available.

If you do not find a prepackaged version that suits your needs, you can always download and compile your own.

### Quickstart

1. Download a fresh copy of Cherokee

2. Configure the package for your system:

       ./configure --localstatedir=/var     \
                   --prefix=/usr            \
                   --sysconfdir=/etc        \
                   --with-wwwroot=/var/www

3. Compile the package:

       make

4. Install the programs and any data files:

       make install

5. Start cherokee-admin

### Advanced parameters

If you want to learn more about configure you can run `./configure --help`. The list of parameter is extensive, so you might want to take a look at it, particularly if you are a developer. Some of the most used parameters are these:

Parameter | Description
--- | ---
`--with-wwwroot=DIR` | Specify the webserver root directory
`--with-wwwuser=USER` | Custom username under which the server will run
`--with-wwwgroup=GROUP` | Custom group under which the server will run
`--disable-epoll` | Disable epoll() support
`--disable-pthread` | Disable threading support
`--disable-readdir_r` | Disable readdir_r usage
`--disable-ipv6` | Disable IPv6 support
`--disable-pam` | Disable PAM support
`--enable-trace` | Allows debugging options
`--disable-admin` | Skips cherokee-admin installation
`--disable-largefile` | omit support for large files
`--enable-internal-pcre` | Enable internal PCRE
`--disable-nls` | do not use Native Language Support
`--enable-static-module=MODULE` | build listed modules as static. Accepts ALL

### Autostart

If you need the cherokee webserver to start at boot (through init’s runlevel) you can find a start/stop script in the contrib source directory:

    cp contrib/cherokee /etc/init.d/

Additionally, you need to create symlinks at the correct rc directory of the appropriate runlevel. This can be done in many ways and usually each distribution offers its own tools to do so.