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 http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
Install the EPEL x86_64 YUM Repository
# rpm -Uvh http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# 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 http://10.0.0.3
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 127.0.0.1 (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 Login: 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 http://10.0.0.3:9090/ (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 => "http://download.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm";
"rpmforge-release": source => "http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm"
}
}
class cherokee::install {
$packagelist = [
"cherokee",
"rrdtool",
"mysql",
"mysql-server",
]
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 = [
"cherokee",
"mysqld",
]
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
}
Links
Cherokee: http://www.cherokee-project.com/
MySQL: http://www.mysql.com/
CentOS: http://centos.org/