Installation von Cherokee mit PHP5 und MySQL Unterstützung unter Ubuntu 11.10

Version 1.0
Author: Falko Timme , Christian Schmalfeld <c [dot] schmalfeld [at] projektfarm [dot] de>
Follow me on Twitter

Cherokee ist ein sehr schneller, flexibler und einfach zu konfigurierender Web Server. Er unterstützt die heutzutage verbreiteten Technologien: FastCGI, SCGI, PHP, CGI, mit TLS und SSL verschlüsselte Verbindungen, Virtual Hosts, Authentifikation, On-the-fly Verschlüsselung, Load Balancing, mit Apache kompatible Log Dateien und viele mehr. Dieses Tutorial zeigt Ihnen, wie man Cherokee mit PHP5 (durch FastCGI) und MySQL Unterstützung auf einem Ubuntu 11.10 Server installiert.

Für die Richtigkeit der Inhalte des Tutorials gebe ich keinerlei Garantie!

1 Vorbemerkung

Ich benutze in diesem Tutorial den Hostnamen server1.example.com mit der IP Adresse 192.168.0.100. Diese Einstellungen werden sich von Ihren unterscheiden, ersetzen Sie sie also an den entsprechenden Stellen.

Alle Schritte des Tutorials werden von mir als root Benutzer ausgeführt, melden Sie sich daher vor Ausführung ebenfalls als root Benutzer an:

sudo su


2 Installation von MySQL 5

Benutzen Sie folgenden Befehl um MySQL zu installieren:

apt-get install mysql-server mysql-client

Sie werden darum gebeten, ein Passwort für den MySQL root Benutzer anzulegen - dieses Passwort gilt für den Benutzer root@localhost als auch für root@server1.example.com, sodass Sie das MySQL root Passwort nicht später manuell anlegen müssen:

New password for the MySQL “root” user: <-- IhrrootSQLPasswort Repeat password for the MySQL “root” user: <-- IhrrootSQLPasswort

3 Installation von Cherokee

Cherokee ist als Ubuntu-Paket verfügbar, Sie können es daher folgendermaßen installieren:

apt-get install cherokee

Gehen Sie nun mit Ihrem Internetbrowser auf http://192.168.0.100 sollten Sie die Cherokee Platzhalterseite sehen können:


Cherokee kann durch eine Web-basierte Kontrolloberfläche konfiguriert werden, welche sich wie folgt starten lässt:

cherokee-admin -b

(Standardmäßig bindet sich cherokee-admin nur an 127.0.0.1 (localhost), was bedeutet, dass Sie nur vom selben System aus darauf zugreifen können. Mit Hilfe des -b Parameters können Sie die Netzwerkadresse bestimmen, welche benutzt werden soll - wird keine IP angegeben, kann jedes Interface benutzt werden.)

Die Ausgabe sollte dieser ähnlich sein:

root@server1:~# cherokee-admin -b
[09/12/2011 15:40:31.053] (warning) rrd_tools.c:120 - Could not find the
rrdtool binary. | A custom rrdtool binary has not been defined, and the
server could not find one in the $PATH.
Cherokee Web Server 1.2.2 (Jul 12 2011): Listening on port ALL:9090, TLS
disabled, IPv6 enabled, using epoll, 4096 fds system limit, max. 2041
connections, caching I/O, 5 threads, 408 connections per thread, standard
scheduling policy

Login:
User:              admin
One-time Password: Qsx6Jqp5TYrbjJBP
Web Interface:
URL:               http://localhost:9090/

Sie benötigen den Benutzernamen und das Passwort um sich in die Benutzeroberfläche einzuloggen, welche Sie unter  http://192.168.0.100:9090/ finden:


So sieht die Oberfläche aus:


Um cherokee-admin zu beenden, tippen Sie CTRL+C auf der Shell.

4 Installation von PHP5

PHP5 kann in Cherokee mit Hilfe von FastCGI benutzt werden. Glücklicherweise stellt Ubuntu ein durch FastCGI funktionierendes PHP5 Paket bereit, welches Sie wie folgt installieren können:

apt-get install php5-cgi


5 Konfiguration von PHP5

Sie müssen die Datei /etc/php5/cgi/php.ini abändern, indem Sie die Zeile cgi.fix_pathinfo=1 entkommentieren:

vi /etc/php5/cgi/php.ini

[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=1 [...]
Starten Sie danach Cherokee neu:

/etc/init.d/cherokee restart


6 PHP5 in Cherokee

PHP ist standardmäßig nicht in Cherokee aktiviert. Um dies zu tun, öffnen Sie Cherokees Web-basierte Kontrolloberfläche...

cherokee-admin -b

... und melden Sie sich an (http://192.168.0.100:9090/).

Klicken Sie auf vServers, wählen Sie den default vhost und gehen in den Behavior Reiter; Klicken Sie hier auf den Rule Management Button:


In der linken Spalte sollten Sie nun alle bereits vorhandenen Regeln sehen:


Klicken Sie auf den + Button neben Behavior um eine neue Regel anzulegen:


Ein Overlay Fenster öffnet sich; wählen Sie den Punkt Languages aus der linken Spalte, PHP aus der rechten und klicken dann den Add Button:


Klicken Sie als nächstes auf den Create Button im Configuration Assistant Fenster:


Sie sollten nun in der linken Spalte eine neue Regel für PHP sehen (mit dem Status NON FINAL). Sie können die Standardeinstellungen von PHP ändern wenn Sie möchten (dies ist allerdings nicht notwendig, diese sollten in den meisten Fällen in Ordnung sein). Die FastCGI Einstellungen finden Sie im Handler Reiter:


Um das Setup abzuschließen, klicken Sie auf die NON FINAL Box...


... damit diese FINAL anzeigt:


In der rechten oberen Ecke sollte nun ein Save Link zu finden sein - klicken Sie auf diesen um Ihre Einstellungen zu speichern...


... und wählen aus der nachfolgenden Auswahl Graceful restart aus (Cherokee muss neu gestartet werden, um die Änderungen geltend zu machen):


PHP wird nun im Behavior Reiter aufgelistet sein (ein Häkchen sollte in der Final Spalte sein):


Press CTRL+C on the command line to stop the control panel.

7 Testen von PHP5 / Details über Ihre PHP5 Installation

Das Stammverzeichnis der Standardwebseite ist /var/www. Erstellen sie eine PHP Datei (info.php) in diesem Verzeichnis und rufen sie in einem Browser auf. Die Datei wird viele nützliche Details über Installation anzeigen, wie zum Beispiel Ihre installierte Version.

vi /var/www/info.php

<?php
phpinfo(); ?>
Folgendes sehen Sie, wenn Sie die Datei im Browser aufrufen (e.g. http://192.168.0.100/info.php):


Wie Sie sehen funktioniert PHP5 und dies tut es durch FastCGI, was an der Server API Zeile abzulesen ist. Scrollen Sie weiter herunter, werden. MySQL ist dort noch nicht aufgelistet, was bedeutet, dass Sie noch keine MySQL Unterstützung freigeschaltet haben.

8 MySQL Unterstützung in PHP5

Um MySQL Unterstützung in PHP zu bekommen, müssen Sie das php5-mysql Paket zu installieren. Außerdem können Sie im selben Zuge einige weitere PHP Module installieren, da Sie diese eventuell für Ihre Anwendungen brauchen könnten. Suchen Sie folgendermaßen nach PHP Modulen:

apt-cache search php5

Wählen Sie die aus, die Sie benötigen, und installieren Sie sie wie folgt:

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Starten Sie Cherokee dann neu:

/etc/init.d/cherokee restart

Laden Sie http://192.168.0.100/info.php in Ihrem Browser neu und scrollen erneut zur Modulsektion herunter. Viele neue Module sollten nun angezeigt werden, einschließlich des MySQL Moduls:

9 Links