XAMPP, virtuelle Maschinen, VirtualBox

 7. März 2010 •  Ekkart •  Computer •  ToDo

In der vorletzten c’t war ein Artikel über CakePHP, der mich dazu animierte, dieses Framework einmal auszuprobieren. Ziel ist es, unsere Champagner-Erlebnisse ins Netz zu stellen. Ursprünglich wollte ich statische Seiten erstellen, jedoch sah mit einen PHP-Framework die Möglichkeit leicht aus, eine Datenbank dahinterzuhängen und dynamisch anzusprechen.

Für das Testen hatte ich zwei Möglichkeiten: live auf dem Server oder lokal auf meinem Rechner. Live ist etwas umständlich, vor allem, wenn man dauernd Dateien ändert und dann mühselig mit FTP hochladen muss. Also lokal auf meinem Rechner. Hier fand ich aber die Notwendigkeit, einen PHP-fähigen Server und einen Datenbankserver zu installieren, nicht so prickelnd. Das mache ich nicht alle Tage, wer weiß, was ich mir da zerschießen kann.

Virtuelle Maschine mit VirtualBox

Zum Glück gibt es für solche Fälle virtuelle Maschinen (VM), also Betriebssysteme im Betriebssystem. Idee: ein weiteres Ubuntu installieren und dort die entsprechenden Installationen vornehmen. Wenn was schiefgeht, einfach die virtuelle Maschine löschen und gut ist.

Für das Betreiben einer virtuellen Maschine benötigt man eine Software, innerhalb derer die Maschine läuft. Ich hatte gute Erfahrungen mit VirtualBox gemacht, also habe ich es wieder genommen. VirtualBox gibt es für Linux, Windows, Mac und Solaris. Das Gute: die Software ist kostenlos, wenn man die Open Source Edition benutzt. Was ich tue.

Als virtuelles Betriebssystem wollte ich ein kleines, schnelles Ubuntu haben und habe mich für Xubuntu entschieden. Derzeit versuche ich noch, ein kleineres Ubuntu zu basteln, bin da aber noch im Teststadium. Die Installation läuft problemlos, einfach im “Virtual Media Manager” von VirtualBox die iso-Datei von Xubuntu als CD-Image einbinden und starten. Dann beginnt die normale Installationsroutine, danach die Updates einspielen.

Für die Bedienfreundlichkeit müssen jetzt noch die “VBoxGuestAdditions” eingespielt werden. Diese Erweiterungen sorgen dafür, dass die virtuelle Maschine direkt bestimmte Ressourcen der Host-Maschine nutzen kann, in meinem Fall die Maus und die Zwischenablage. Ohne die Erweiterung wird die Maus gefangen und muss über die rechte Strg-Taste wieder freigegeben werden. Mit den Erweiterungen wird die Maus kontinuierlich weitergenutzt.

Wichtig: nach jedem Kernel-Update müssen die Erweiterungen neu installiert werden.

Vorgehen: Die Datei VBoxGuestAdditions.iso im Medienmanager als CD-Image bekanntmachen. Im Xubuntu die CD mounten (z.B. durch Doppelklick). Dann in der Kommandozeile ausführen:

Danach das System neu starten und der Anfang ist getan.

Lokale Laufwerke

Die Entwicklungsarbeit und die Downloads will ich gerne auf meinem Hostrechner machen, da ich hier die Datensicherung betreibe. Die virtuelle Maschine soll im Fall eines Absturzes keine Daten mit sich reißen. Das heißt, ich muss meine lokalen Daten von der Maschine aus ansprechen. Dafür mache ich die entsprechenden Ordner für die virtuelle Maschine als “Shared Folder” permanent bekannt. Ich wähle “full”-Zugriff für das Datenverzeichnis, da CakePHP temporär Dateien ablegen muss. Lieber hätte ich “read-only” gewählt. Diese virtuellen Ordner muss ich unter Xubuntu mounten, wenn ich sie nutzen will. Beispiel: ich habe den Ordner “champagne” eingetragen:

XAMPP

Für den PHP-Server mit Datenbank gibt es eine Komplettlösung zum Ausprobieren: XAMPP. Hier muss man nur die entsprechende Datei herunterladen und als Installation entpacken:

XAMPP steht dann unter /opt/lampp/ zur Verfügung. Gestartet wird XAMPP mit

Im Browser danach http://localhost/ eingeben und alles sollte laufen. Etliche Beispiele und Hilfsprogramme sind vorinstalliert, einfach im Menü aufrufen, nachdem man sich für eine Sprache entschieden hat.

CakePHP

Jetzt geht es daran, CakePHP zum Laufen bringen. CakePHP herunterladen, dann in das entsprechende Verzeichnis entpacken (champagne) und den Ordner, in dem die Champagner-Dateien liegen, Apache bekanntmachen. Dazu lege ich einen symbolischen Link im Verzeichnis /opt/lampp/htdocs/ zum Verzeichnis mit den Dateien an:

Jetzt die Konfiguration von CakePHP:

  • Security.salt in app/config/core.php einen neuen zufälligen Wert zuweisen (40 Zeichen)
  • Datenbankdaten in app/config/database.php

In der Datei app/config/database.php muss dabei folgende Zeile für UTF-8-Unterstützung ergänzt werden:

Jetzt beginnt die normale Cake-Programmierung nach Anleitung. Das beschreibe ich in einem anderen Artikel.

Links