Skip to content

Installing Cherokee on CentOS 5.8

This tutorial is intended for system administrators wanting to install Cherokee web server on a CentOS 5.8 x86_64

Cherokee is a very fast, flexible and easy to configure web server. It supports the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, TLS and SSL encrypted connections, virtual hosts, authentication, on the fly encoding, load balancing, Apache compatible log files, and much more.

Install the RPMForge x86_64 YUM Repository

# rpm -Uvh

Install the EPEL x86_64 YUM Repository

# rpm -Uvh
# yum install yum-priorities
# yum update

Install MySQL and MySQL server

# yum install mysql mysql-server

Install RRDTool

# yum install rrdtool

Install Cherokee web server

# yum install cherokee
# chkconfig cherokee on
# service cherokee start

Now direct your browser to

You should see the Cherokee placeholder page.

Cherokee can be configured through a web-based control panel which we can start as follows:

cherokee-admin -b

(By default cherokee-admin binds only to (localhost), with the -b parameter you can specify the network address to listen to. If no IP is provided, it will bind to all interfaces.)

Output should be similar to this one:

# cherokee-admin -b

  User:              admin
  One-time Password: gtVzmvy6Rqy9idKy

Web Interface:
  URL:               http://localhost:9090/

Cherokee Web Server 1.0.6 (Aug  6 2010): Listening on port ALL:9090, TLS
disabled, IPv6 enabled, using epoll, 4096 fds system limit, max. 2041
connections, caching I/O, single thread

The admin web interface can be found on (make sure to enter your one-time password)

To stop cherokee-admin, type CTRL+C on the shell.

Managing Varnish with Puppet

If you’re running Puppet we have included the manifest for installing Cherokee on CentOS 5. If you’re not running Puppet then you can install it by following the instructions outlined in our CentOS 5 Puppet Install.

This is only the manifest and doesn’t include any of the files (i.e. cherokee.conf).

class cherokee::repo {

    Package {
        provider => rpm,
        ensure => installed

    package {"epel-release": source => "";
        "rpmforge-release": source => ""

class cherokee::install {

    $packagelist = [

    package { $packagelist:
        ensure => latest,
        require => Class ["cherokee::repo"],

class cherokee::conf {

    File {
        owner => "root",
        group => "root",
        mode => 0644,
        require => Class ["cherokee::install"],
        notify => Class ["cherokee::service"]

    file { "/var/www/cherokee/phpinfo.php":
        source => "puppet:///modules/cherokee/phpinfo.php"

    file { "/etc/cherokee/cherokee.conf":
        source => "puppet:///modules/cherokee/cherokee.conf"

class cherokee::service {

    $servicelist = [ 

    service { $servicelist:
        require => Class ["cherokee::install"],
        ensure => true,
        enable => true,
        hasrestart => false,
        hasstatus => true

class cherokee {
        include cherokee::repo, cherokee::install, cherokee::conf, cherokee::service



+George Rushby