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 Windows

The latest Windows bundled release is available at the Windows download section of the Cherokee Project website.

Warning | The Windows native build is currently broken. It will be fixed as soon as possible. A Windows binary release will be available too. In the meantime, if you need to run Cherokee on a Windows host you will have to rely on Cygwin and the likes. Almost all the code base of the Cherokee-Project can be used natively under Windows, as it was 100% compatible not too long ago. However, since resources and man-power are limited, and due to Cherokee’s fast evolution, we are not yet there. Reacquiring binary compatibility with the Windows platform is a medium-to-long term goal.

### Quickstart

The installation process requires little explanation, as it is simply a matter of pointing and clicking.

You have to check the desired components to be installed, select the desired installation path and that’s it.

However, if you want to try out the latest development release or simply want to compile from source, you will need to setup a proper building environment.

### Configuring the building the environment

Cherokee for Windows runs in fully native mode, but the environment for its development has always been Unix/Linux. Building in non-native mode (i.e., using Cygwin) would incur in a big loss of performance, though it would be much simpler to maintain and build.

However, a big effort is made to ensure Cherokee’s complete cross-platform compatibility. To be able to build Cherokee you will need a unix-like environment that provides the necessary tools listed in the requirements section. Unfortunately this environment is far from trivial to set up.

You can either follow these instructions on how to accomplish such task, or simply download the Win32 preconfigured building environment bundle provided by the Cherokee-Project and skip the rest of this section, right to the building part.

This is what you need to install. Check the MinGW site to download most of the software mentioned in the following lines.

MinGW: minimalist GNU for Windows (GCC & binutils)

- Download MinGW release 5.1.4 at the time of this writing.

- Run it and select ‘Candidate’. Check base tools & g++

- Install in a directory with no spaces (the default directory C:\MinGW is fine).

MSYS: Minimal SYStem

- Download MSYS, tests were made with release 1.0.10

- Install it in the same directory as MinGW (remove “1.0″ from the install path).

- Answer y, y, c:/MinGW

- You should add something like this to your ~/.profile to process your preferences:

      if [ -f ${HOME}/.bashrc ] then
        . ${HOME}/.bashrc
      fi

MSYS DTK: Dev Toolkit

- Get DTK

- Install it in the same path as above

Update Autoconf & Automake

- You might encounter problems if you do not have up to date `Autoconf` and `Automake`. We recommend the usage of at least versions 2.61 and 1.10.1, that are the ones we used.

Pthreads Win32: POSIX Threads

- Cherokee will need these. Just download Pthreads-Win32 and copy the appropriate files to /lib and /include

Python

- You will need this, since both the build process and Cherokee-Admin use Python. Just download a Python Windows installer, remember to include the directory in your path environment variable, and you’re done.

- rxvt seems to be broken, which is most noticeable when you try to run Python interactively, so just comment out its line in msys.bat.

### Building

1. Download a fresh copy of Cherokee

2. Configure the package for your system:

       ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var  \
       --enable-trace --enable-static-module=all --enable-static         \
       --enable-shared=no --enable-beta --disable-readdir_r

3. Compile the package:

       make

4. Install the programs and any data files:

       make install

### Advanced parameters

If you want to learn more about configure you can run `./configure --help`.

Parameter | Description
--- | ---
`--with-wwwroot=DIR` | Specify the webserver root directory
`--with-user=USER` | Custom username under which the server will run
`--with-user=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` | Stops cherokee-admin from installing

### Autostart

To be written