Installation von Cherokee mit PHP5 und MySQL Unterstützung auf Ubuntu 11.04

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, TLS- und SSL-kodierte Verbindungen, virtual hosts, Authentifikation, on the fly Kodierung, load balancing, mit Apache kompatible Logdateien, und viele mehr. Dieses Tutorial zeigt Ihnen wie Sie Cherokee mit PHP5 (durch FastCGI) und MySQL Unterstützung auf einem Ubuntu 11.04 Server installieren.

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

1 Vorbemerkung

In diesem Tutorial benutze ich 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 ensprechenden Stellen.

Ich bin das ganze Tutorial über als root eingeloggt, loggen Sie sich deshalb auch als root ein:

sudo su


2 Installation von MySQL 5

Als erstes installieren Sie MySQL 5 wie folgt:

apt-get install mysql-server mysql-client

Sie werden aufgefordert, ein Passwort für den MySQL root Benutzer anzugeben. Dieses Passwort ist sowohl für root@localhost als auch für root@server1.example.com gültig,so müssen Sie später kein MySQL Rootpasswort mehr manuell konfigurieren:

New password for the MySQL "root" user: <-- IhrrootsqlPasswort
Repeat password for the MySQL "root" user: <-- IhrrootsqlPasswort

3 Installation von Cherokee

Cherokee ist als Ubuntupaket verfügbar, deshalb können Sie es wie folgt installieren:

apt-get install cherokee

Gehen Sie nun mit Ihrem Browser auf http://192.168.0.100 und Sie sollten die Cherokee Platzhalterseite vorfinden:


Cherokee kann mit einer Web-basierten Kontrolloberfläche konfiguriert werden, welche Sie wie folgt starten können:

cherokee-admin -b

(Standartmäßig bindet sich cherokee-admin nur an 127.0.0.1 (localhost), was bedeutet, dass Sie nur vom selben System darauf zugreifen können. Mit dem -b Parameter können Sie die Netzwerkadresse spezifizieren, welche es abhören soll. Ist keine IP angegeben, wird es sich an alle Schnittstellen binden.)

Die Ausgabe sollte dieser hier ähneln:

root@server1:~# cherokee-admin -b

Login:

User:              admin

One-time Password: 0nILNh3TdaNZyMN1

Web Interface:

URL:               http://localhost:9090/

[18/05/2011 14:57:19.713] (error) rrd_tools.c:120 - Could not find the rrdtool binary.

Cherokee Web Server 1.0.8 (Nov 24 2010): Listening on port ALL:9090, TLS

disabled, IPv6 enabled, using epoll, 4096 fds system limit, max. 2041

connections, caching I/O, single thread

Sie brauchen den Benutzernamen und das Passwort um sich in das Webinterface einzuloggen, welches Sie unter http://192.168.0.100:9090/ finden:


So sieht das Webinterface aus:


Um cherokee-admin zu beenden, geben Sie in der Shell CTRL+C ein.

4 Installation von PHP5

Wir können PHP5 in Cherokee durch FastCGI benutzen. Glücklicherweise stellt Ubuntu ein FastCGI-enabled PHP5 Paket zur Verfügung, welches Sie folgendermaßen installieren können:

apt-get install php5-cgi


5 Konfiguration von PHP5

Sie müssen die Datei /etc/php5/cgi/php.ini modifizieren und 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 Cherokee dann neu:

/etc/init.d/cherokee restart


6 PHP5 in Cherokee aktivieren

PHP ist in Cherokee nicht standartmäßig aktiviert. Um es zu aktivieren, starten Sie Cherokees webbasierte Kontrolloberfläche...

cherokee-admin -b

... und loggen sich ein (http://192.168.0.100:9090/).

Gehen Sie dort auf vServers, wählen Sie den default vhost und öffnen den Behavior Reiter; klicken Sie dort auf den Rule Management Button:


In der linken Spalte sollten Sie nun alle derzeit existierenden Regeln sehen:



Klicken Sie auf den New Button neben Behavior und fügen Sie eine neue Regel hinzu:


Ein Fenster erscheint; wählen Sie Languages aus der linken Spalte, wählen Sie dort PHP und klicken den Add Button:


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


Sie sollten nun eine neue Regel für PHP in der linken Spalte sehen (mit dem Status NON FINAL). Sie können wenn Sie wollen die PHP Standarteinstellungen ändern (dies ist nicht nötig, die Standarteinstellungen sollten in den meisten Fällen in Ordnung sein). Die FastCGI Einstellungen sind im Handler Reiter:


Um den Setup zu beenden, klicken Sie auf die Box, welche NON FINAL anzeigt...


... und Sie sollte FINAL anzeigen:


In der rechten oberen Ecke sollte sich nun ein Save Link befinden - klicken Sie ihn um die neue Konfiguration zu sichern...


... und klicken Sie dann auf Graceful restart (Cherokee muss neu gestartet werden um die Veränderungen gültig zu machen):


PHP sollte nun im Behavior Reiter aufgelistet sein (es sollte ein Haken in der Final Spalte sein):


Drücken Sie CTRL+C in der Befehlszeile um die Kontrolloberfläche zu beenden.

7 PHP5 testen / Details über Ihre PHP5 Installation erfahren

Der Pfad der Standartwebseite ist /var/www. Wir werden nun eine kleine PHP5 Datei (info.php) in diesem Verzeichnis erstellen und diese in einem Browser aufrufen. Die Datei wird viele nützliche Details über Ihre PHP Installation verraten, wie zum Beispiel die installierte PHP Version.

vi /var/www/info.php


<?php
phpinfo(); ?>
Rufen Sie diese Datei nun in einem Browser auf (e.g. http://192.168.0.100/info.php):


Wie Sie sehen funktioniert PHP5 (durch FastCGI, wie die Server API Zeile verrät). Scrollen Sie ein Stück herunter, sehen Sie eine Liste der Module die bereits in PHP5 aktiviert sind. MySQL ist dort nicht aufgelistet, was bedeutet, dass Sie noch keine MySQL Unterstützung in PHP5 haben.

8 MySQL Unterstützung in PHP5

Um MySQL Unterstützung in PHP zu erlangen, können Sie das php5-mysql Paket installieren. Außerdem ist es meist gut noch einige weitere Module zu installieren, da Sie diese für Ihre Anwendungen brauchen könnten. Sie können folgendermaßen nach verfügbaren PHP5 Modulen suchen:

apt-cache search php5

Wählen Sie die, welche Sie installieren wollen aus und installieren Sie sie wie folgt:

apt-get install php5-mysql php5-curl php5-gd
php5-idn 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 nun neu:

killall php-cgi

/etc/init.d/cherokee restart

Laden Sie nun http://192.168.0.100/info.php neu und scrollen wieder runter zur Modulsektion. Sie sollten hier nun viele verschiedene Module finden, darunter auch das MySQL Modul:

9 Links