Как установить сервер Cherokee с поддержкой MySQL и PHP на Ubuntu Server 9.04

Чароки это такой быстрый и вообще крутой сервер по заявлениям разработчиков. Он очень прост в настройке, стабилен и быстр. Поддерживает такие технологии FastCGI, SCGI, PHP, CGI, SSI, TLS и SSL зашифрованные соединения, Virtual hosts, аутонтефикация, шифрование “на лету”, Load Balancing, Apache совместимые файлы, сбалансированные базы данных, реверсный HTTP Proxy, Traffic Shaper, видео потоки и многое другое. Во всяком случае так написано на сайте разработчика. Он даже обладает web-интерфейсом для настройки, и называется интерфейс cherokee-admin. Разработчики просто гордятся такими вещами как низкое потребление памяти сервером, балансировка нагрузки объектов , чистый и аккуратный код к которому любой имеет доступ, так как он является открытым. Сервер мультиплатформенный и одинаково хорошо работает в Linux, Unix и Windows, позволяя из железа выжать все возможное. Что это такой за зверь и как его укротить смотрим дальше

Подготовка к установке

Чтобы узнать, правда ли это, что Cherokee так же крут, как одноименный джип его нужно установить. Я для этих целей запустил у себя в Ubuntu виртуальную машину с помощью VirtualBox 3.0 Как это делается смотрим тут. В ней я установил Ubuntu Server 9.04 и вам того же советую.
Как я уже отметил, у Cherokee есть инструмент графической настройки, хотелось бы опробовать и его, так как в Ubuntu Server нифига нет графического инерфейса, мы его установим, это дело 15 минут.

Для сервера подойдет что нибудь легкое, например XFCE. В качестве отступления скажу, что наличие хоть какой нибудь графической оболочки на сервере по моему мнению обязательно, особенно если это сервер в университете (так будет легче знакомить студентов с Linux), домашний сервер или сервер в небольшой канторе. Понятное дело, что бородатым-красноглазым дядькам графическая оболочка даром не упала, но мы же с вами простые смертные.

Да вот еще, что бы вы могли использовать sudo, надо выполнить следующие:

su -
nano /etc/sudoers
su -
nano /etc/sudoers

в файле нужно вписать своего пользователя а перед рутом поставить %:

# User privilege specification
%root   ALL=(ALL) ALL
booch ALL=(ALL) ALL
# User privilege specification
%root   ALL=(ALL) ALL
booch ALL=(ALL) ALL

Где booch имя вашего пользователя. И сохраните файл.
И ставим XFCE командой:

sudo aptitude install xubuntu-desktop
sudo aptitude install xubuntu-desktop

Те кто в танке, могут обратиться за помощью к инструкциям на официальном сайте.
Инструкции с картинками.

Ставим сервер

Готовый Ubuntu Server с рабочим столом XFCE

Установка из репозитариев

Теперь когда платформа готова. (У вас это может быть и Ubuntu Desktop 9.04) да и вообще любой Linux. Установку мы будем проводить из исходных кодов, так нагляднее да и версия более новая будет чем из репозитариев. Тому кто не фанат установки из Source предлагаю установить сервер командой:

sudo apt-get install cherokee
sudo apt-get install cherokee

Но это блин вообще нереально легко. Что бы убедить в том, что версия в репах не последней свежести выполните команду (заодно и зависимости просмотрите):

apt-cache showpkg cherokee
apt-cache showpkg cherokee

Для тех кто хочет все последнюю версию установить с репозитариев можно сделать так:

sudo nano  /etc/apt/sources.list
sudo nano  /etc/apt/sources.list

Добавляем строки:

deb http://ppa.launchpad.net/cherokee-webserver/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/cherokee-webserver/ppa/ubuntu jaunty main
deb http://ppa.launchpad.net/cherokee-webserver/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/cherokee-webserver/ppa/ubuntu jaunty main

Получаем GPG ключ:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0?0ad0b667b67daa477f5ff89f51bb8e83eba7bd49
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0?0ad0b667b67daa477f5ff89f51bb8e83eba7bd49

Делаем апдейт:

sudo apt-get update
sudo apt-get install cherokee
sudo apt-get update
sudo apt-get install cherokee

Вот и все. Для запуска сервера используем команду:

sudo /etc/init.d/cherokee start
sudo /etc/init.d/cherokee start

Установка из исходников

Прежде чем собрать Cherokee из исходных кодов, нужно доставить кое какие библиотеки, если у вас их нет. В Ubuntu Server по дефолту их точно нет. И кстати установка из исходников намного интереснее:

sudo apt-get install gcc make automake autoconf libtool
sudo aptitude install build-essential
sudo aptitude install linux-headers-`uname -r`
sudo aptitude install gettext
sudo apt-get install gcc make automake autoconf libtool
sudo aptitude install build-essential
sudo aptitude install linux-headers-`uname -r`
sudo aptitude install gettext

Это все добро нужно нам для успешной сборки и компиляции сервера.
Обратите внимание, нужен пакет gettext.

Поставим теперь MySQL:

sudo apt-get install mysql-server-5.0 mysql-client
sudo apt-get install mysql-server-5.0 mysql-client

И PHP:

sudo apt-get install php5-cgi
sudo apt-get install php5-cgi

У PHP есть интерфейс для MySQL, ставим его:

sudo apt-get install php5-mysql
sudo apt-get install php5-mysql

Теперь можем спокойно ставить сервер.
Загрузим сервер:

cd /home/mothes/
mkdir temp/
cd temp/
wget http://www.cherokee-project.com/download/0.99/0.99.24/cherokee-0.99.24.tar.gz
tar zxvf cherokee-0.99.24.tar.gz
cd cherokee-0.99.24
cd /home/mothes/
mkdir temp/
cd temp/
wget http://www.cherokee-project.com/download/0.99/0.99.24/cherokee-0.99.24.tar.gz
tar zxvf cherokee-0.99.24.tar.gz
cd cherokee-0.99.24

Сборка и установка:

./configure --localstatedir=/var  \--prefix=/usr \--sysconfdir=/etc \--with-wwwroot=/var/www \--disable-ipv6
make
sudo make install
./configure --localstatedir=/var  \--prefix=/usr \--sysconfdir=/etc \--with-wwwroot=/var/www \--disable-ipv6
make
sudo make install

Подробнее об опциях ./configure вы можете прочитать выполнив –./configure –help
Заметим, что после сборки сервер показывает табличку, где указано что включено, а что нет. Например мы исключили поддержку протокола ipv6, нам она не нужна.

Настройка сервера

Как можно было уже догадаться (или кто по пронырлевее) прочитать о том, что мы делали когда выполнили команду ./configure и на что указывали опции. Самое простое это вот:
/var/www – здесь должен лежать сайт (помним при установке этот параметр можно изменить)
/etc/cherokee/cherokee.conf – основной конфигурационный файл
/usr/sbin/cherokee – сам сервер
/usr/sbin/cherokee-admin – графическое приложения для управления сервером

Добавить скрипт запуска в /etc/init.d можно следующим образом
В архиве который мы скачали есть папка contrib вот в ней то и лежит скрипт автозапуска. Копируем его в /etc/init.d:

cd /home/mothes/temp/cherokee-0.99.24/contrib
sudo cp cherokee /etc/init.d
sudo chmod +x cherokee
cd /home/mothes/temp/cherokee-0.99.24/contrib
sudo cp cherokee /etc/init.d
sudo chmod +x cherokee

Далее можно запустить сервер командой:

sudo /etc/init.d/cherokee start
sudo /etc/init.d/cherokee start

Так же можно запускать сервер командой:

/usr/sbin/cherokee -C etc/cherokee/cherokee.conf
/usr/sbin/cherokee -C etc/cherokee/cherokee.conf

Такой вид запуска мне кажется более правильным, так как вы можете указать всевозможные опции запуска, например брать файл конфигурации из etc/cherokee/cherokee.conf. Т.е. в таком случае где бы файл не лежал, вы всегда можете указать к нему путь.

Если при сборке вы указывали отличные от дефолтных пути. То можно немного подправить скрипт автозапуска, откройте его и измените опции DAEMON= и CONF=
Это тоже удобно без сомнения. Выглядит это в файле вот так:

nano /etc/init.d/cherokee
......
DAEMON=/usr/sbin/cherokee
CONF=/etc/cherokee/cherokee.conf
........
nano /etc/init.d/cherokee
......
DAEMON=/usr/sbin/cherokee
CONF=/etc/cherokee/cherokee.conf
........

Тут все понятно я думаю.

Что-бы запустить элемент управления cherokee-admin выполните:

sudo /usr/sbin/cherokee-admin
sudo /usr/sbin/cherokee-admin

Если вы захотите получать доступ к cherokee-admin с удаленного компьютера, то запустить панель необходимо следующей командой:

cherokee-admin -b
cherokee-admin -b

После запуска вы увидите информацию, необходимую для входа в панель управления. По моему очень удобно. Это будет Login, One Time Password и URL вида http://127.0.0.1:9090/

Но! Вспомним, что прежде чем запускать любой сервер, нужно настроить его конфигурационный файл, и настроить правильно. За частую это зависит от ваших лично потребностей. Я сделал этот так:

server!port = 80
server!timeout = 15
server!keepalive = 1
server!keepalive_max_requests = 500
server!pid_file = /var/run/cherokee.pid
server!server_tokens = full
server!encoder!gzip!allow = html,html,txt
server!panic_action = /usr/local/cherokee/0.6.0b863/bin/cherokee-panic
server!mime_files = /usr/local/cherokee/0.6.0b863/etc/cherokee/mime.types
 
vserver!default!document_root = /usr/local/cherokee/0.6.0b863/var/www
vserver!default!directory_index = index.html
 
vserver!default!directory!/!handler = common
vserver!default!directory!/!handler!iocache = 1
vserver!default!directory!/!priority = 1
server!port = 80
server!timeout = 15
server!keepalive = 1
server!keepalive_max_requests = 500
server!pid_file = /var/run/cherokee.pid
server!server_tokens = full
server!encoder!gzip!allow = html,html,txt
server!panic_action = /usr/local/cherokee/0.6.0b863/bin/cherokee-panic
server!mime_files = /usr/local/cherokee/0.6.0b863/etc/cherokee/mime.types

vserver!default!document_root = /usr/local/cherokee/0.6.0b863/var/www
vserver!default!directory_index = index.html

vserver!default!directory!/!handler = common
vserver!default!directory!/!handler!iocache = 1
vserver!default!directory!/!priority = 1

Внимание, файла /var/run/cherokee.pid может не существовать, так что создайте его.

touch /var/run/cherokee.pid
touch /var/run/cherokee.pid

Панель cherokee-admin

Запуск сервера

Запуск сервера можно произвести двумя способами. Первый это через панель управления, второй это напрямую командой. Но прежде чем запускать сервер, вы должны убедиться, что все необходимые компоненты системы работают, а именно PHP и MySQL. Для этого выполните:

ps -ef | grep php
ps -ef | grep php
ps -ef | grep mysql
ps -ef | grep mysql

В моем случае я не нашел запущенного php у себя в процессах.

Тогда я пошел в панель управления и настроил сервер на работу с php. Делаем это так, в панели переходим на вкладку Virtual Servers >> defalut (это ваш сервер) >> Wizards >> Langugages >> Там будет PHP, нажимаем Run Wizard.

Virtual Servers

default (имя вашего сервера)

Langugages, Run Wizard

Далее нужно добавить php интерпретатор
Переходим в Information Sources >> Add new и там проверил настройки моста php-cgi

Information Sources

Настройки моста php-cgi

Теперь когда все в порядке, необходимо произвести запуск php5-cgi:

/usr/bin/php5-cgi -b 127.0.0.1:47990
/usr/bin/php5-cgi -b 127.0.0.1:47990

И произведите запуск сервера из панели или из командной строки так:

/usr/sbin/cherokee -C etc/cherokee/cherokee.conf
/usr/sbin/cherokee -C etc/cherokee/cherokee.conf

или так:

/etc/init.d/cherokee
/etc/init.d/cherokee

После чего создайте тестовую страницу php:

touch /var/www/index.php
nano /var/www/index.php
touch /var/www/index.php
nano /var/www/index.php

Вставьте строку в файл и сохраните:

< ?php echo phpinfo(); ?>
< ?php echo phpinfo(); ?>

Перейдите в браузере по адресу http://localhost/index.php

Вы должны увидеть страницу приветствие php

Поздравляю, ваш сервер готов к работе.

Выводы

Первое знакомство Cherokee прошло у меня вполне удачно. Впечатления от сервера самые позитивные, очень радует наличие панели управления, это очень удобно, так как ее например можно открывать с удаленного компьютера. Весь процесс установки и настройки очень хорошо прокомментирован и благодаря этому вы не теряетесь в потоке информации. Сервер легко настраивается, это факт, единственная загвоздка которая у меня возникла, это прикручивание php к серверу, но и тут все обошлось. Радуют то, что сервер активно развивается, он легко доступен. Сайт проекта сделан очень грамотно, там много инструкций (с картинками в том числе) все инструкции поддерживаются в месте с версией и безупречно работают.

Автор потратил более шести часов на создание этой статьи, и надеется, что статья вам понравилась и пригодиться в использовании.
Официальный сайт http://www.cherokee-project.com/