Kontakt

michael trenkler eBuisness Solutions
Humboldtstraße 1
79098 Freiburg

Email info@mtcd.de
Telefon+49 761 453 89 72  
Mobil+49 151 234 34 080

Weblication GRID5 in einer virtuellen Maschine installieren

Am wohlsten fühlt sich Weblication GRID5 bei einem Apache Webserver, der auf einem Linuxsystem läuft. Das hat nicht einmal so viel mit GRID selbst zu tun, sondern dem Apache: Grundsätzlich ist es zwar durchaus möglich, den Apachen auf ein Windows-System zu zwingen, so richtig schick ist das allerdings nicht: Man bezahlt den vermeindlichen Komfort mit Performance-Einbußen und dem (für mich schwerwiegenden) Nachteil, das sich Entwicklungsumgebung und Liveserver unterscheiden. Das gilt selbstverständlich auch und besonders für den Einsatz vorgefertigter "Serverumgebungen" wie XAMPP.

Nun hat aber nicht jeder einen Linux-Server um die Ecke stehen, und ständig per FTP/ SCP auf dem (Live-)Server zu entwickeln ist auf Dauer reichlich unlustig. Inzwischen gibt es jedoch - vmware sei Dank - die Möglichkeit, relativ ressourcenschonend ein Linuxsystem PARALLEL zum eigentlichen Betriebssystem zu installieren. Wer sich noch nicht mit dem Thema der Virtualisierung beschäftigt hat, dem seien die folgenden Quellen ans Herz gelegt:

http://de.wikipedia.org/wiki/Vmware

http://www.vmachine.de/cms/

http://qemu-buch.de/d/Anhang/ Weitere Virtualisierer und Emulatoren/ VMware-Player


Die Vorteile einer solchen Installation sind vielfältig:

  • Ein "echtes" Serverbetriebssystem
  • Höhere Performance als mit lokal installiertem Windows-Apache oder XAMPP
  • Identische Serverbedingungen auf Live- und Entwicklungssystem
  • Alle Vorzüge einer Linuxinstallation
  • Nahezu wartungsfreie Installation
  • Einfache Sicherung und Portierung des Serverbetriebssystems 
  • Leichtes Testing unter verschiedenen Serverbetriebssystemen (Linuxdistributionen, freeBSD, CentOS etc.) mit mehreren virtuellen Maschinen
  • Besteht gänzlich aus kostenlosen Komponenten (außer Windows und Weblication GRID)
  • Sichere, abgeschottete Umgebung für den Server
  • Schonung der Ressourcen des Hostsystems, da der Server im reservierten Speicherbereich der virtuellen Maschine läuft

Voraussetzungen

In dieser Anleitung setze ich ein paar Dinge voraus:

  • Etwas Übung im grundsätzlichen Umgang mit Linuxsystemen
  • Grundlegende Kenntnisse der Linux-Shell Bash
  • Basiswissen zur Virtualisierung und Netzwerkkonfiguration mit NAT
  • Ein installiertes Windows XP/ Vista/ Windows 7 mit ausreichend Ressourcen (Mind. 1GB, besser 2GB Ram, ca. 20GB freier Speicherplatz auf der Platte, schneller Prozessor ab ca 2.0 GHz)
  • Schon mal Weblication GRID installiert
  • Motivation zum Basteln
  • Ca. 1 Stunde Zeit zur Basiskonfiguration
  • Englischkenntnisse (Viele der verlinkten How-Tos und Anleitungen sind in englischer Sprache)

Noch da? Auf gehts!

Das Ziel

Am Ende möchten wir eine Linux-Installation innerhalb einer virtuellen Maschine mittels VMWare haben. Auf diesem Linux wird folgende Software installiert sein:

  • Apache2 Webserver
  • PHP5 mit den Modulen php5-xsl, php5-gd, php5-curl, php5-xdebug (optional)
  • Die Module zip und zlib
  • Ein SSH-Server (openssh-server)
  • vmware-tools (Optimieren die Performance)
  • aktuelle linux-kernel-header (zum Kompilieren der vmtools)

Dieser Server wird lediglich den Webserver samt aller Funktionen bereitstellen. Die tatsächlichen Dateien liegen dabei nicht innerhalb der virtuellen Maschine, sondern ganz normal irgendwo im Windows-Filesystem. Ich lege mir zu einem solchen Zweck gerne eine eigene Partition an, aber das kann jeder halten, wie er/ sie mag. Es ist also nicht nötig, konstant über SCP mit dem Server verbunden zu sein - der Zugriff auf die Dateien innerhalb der DocumentRoot werden über das Windows-Dateisystem vorgenommen.

Hierfür benötigen wir keine zusätzliche Software - die vmware Installation bietet die sogenannten "Shared Folders" von Haus aus an.

Ablauf

1) Installation des vmware Players und Erstellung der virtuellen Maschine
Dieser Schritt ist weitgehend selbsterklärend: Wir werden das Softwarepaket von vmware herunterladen und auf unserem Windows installieren. Vorsicht: Danach ist ein Reboot zwingend nötig, da sonst das vmware-NAT nicht funktioniert und unser Linux keine Netzwerkverbindung hat.

Nach Reboot werden wir eine virtuelle Maschine erstellen, in der im nächsten Schritt das Linux laufen wird. 


2) Installation des ISO-Images mit der Ubuntu Server Installation
In diesem Schritt laden wir zuerst das fertige Linux herunter und binden es dann direkt in die virtuelle Maschine ein. Es ist also keine Linuxinstallation nötig, das fertige ISO-Image beinhaltet schon einen grossen Teil dessen, was wir benötigen.


3) Einrichten des Linux-Systems und Installation der Serverkomponenten
Zwar ist das ISO-Image schon ziemlich gut ausgestattet, ein paar Dinge sind dann aber doch noch nötig: Wir möchten eine deutsche Tastaturbelegung, einen echten Root-User, aktuelle Software-Quellen und so weiter. Erst wenn diese Schritte durchgeführt sind, machen wir uns an die Installation der benötigten Komponenten - ein einfacher Schritt, da apt (fast) alles für uns erledigt. 

Wenn wir schon dabei sind, installieren wir auch gleich die vmware Tools.


4) Konfiguration des Apache, PHP, der Virtuellen Hosts und Shared Folders
Hier geht es nun ans Eingemachte: Wenn der Apache einmal läuft, richten wir einen virtuellen Host ein und konfigurieren PHP für die optimale Verwendung mit Weblication GRID. Zudem konfigurieren wir die Shared Folders.


5) Installation von Weblication GRID
Zum Schluss installieren wir Weblication: Dies sollte der einfachste Schritt ein.

Vorbereitungen

Bevor wir beginnen, sollten die folgenden Softwarekomponenten heruntergeladen werden:

WinSCP und Putty
Eigentlich brauchen wir beides nicht, aber ich mache es mir gerne einfach - und VI auf der Konsole ist gerade für Linux-Neulinge die reine Hölle: Mit WinSCP können wir alle Konfigurationsdateien konfortabel über den Windows-Texteditor oder PSPad oder whatever editieren:

WinSCP: http://winscp.net/eng/docs/lang:de
Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Installation des vmware Players

Herunterladen:

http://www.vmware.com/de/products/player/

Dann installieren. Eine kurze Anleitung gibt es hier:
http://www.vmware.com/pdf/vmware_player300.pdf

Am Ende muss Windows neu booten, dabei werden die virtuellen Netzwerkadapter eingerichtet. Dieser Schritt ist also zwingend notwendig. Hat alles geklappt, sieht das nach dem erfolgten Windows-Reboot und Starten des vmware Players so aus:

VM Player installieren

Installation des ISO-Images mit der Ubuntu Server Installation

Das ist einfach - wir laden ein "fertiges" Ubuntu Linux herunter. Simon von thoughtpolice hält eine breite Auswahl fertiger VM-Images bereit, wir nehmen das aktuelle Ubuntu 9.10 ohne grafische Oberfläche:
Ubuntu Server ISO Image: http://www.thoughtpolice.co.uk/vmware/
Direkter Downloadlink: http://downloads.sourceforge.net/thoughtpolicevm/ubuntu-server-9.10-i386.zip

Diese Seite bietet auch ein paar kurze HowTos in englischer Sprache:
http://www.thoughtpolice.co.uk/vmware/howto/

Sobald wir das fertige Image heruntergeladen haben, extrahieren wir es und binden es ein:

Open a Virtual Machine

VM Auswählen

Nachdem das ISO-File ausgewählt wurde, erscheint kurz danach ein Eintrag in der linken Übersichtsliste. Diesen auswählen, dann erscheint eine knappe Zusammenfassung:

ubuntu-server-9.10-i386.vmx
State: Powered off
OS: Other Linux 2.6.x Kernel
Version: Workstation 5.x virtual machine
RAM: 256 MB

Play virtual machine
Edit virtual machine settings

Wir wählen den zweiten Eintrag (Edit virtual machine settings), darauf folgt die Basiskonfiguration der virtuellen Maschine. Die folgenden Werte haben sich hierbei als sinnvoll erwiesen:

Hardware

 Memory 1024MB
(mindestens 512MB, mehr ist besser)
 Processors 1
(wer einen zweiten spendieren möchte, soll sich nicht aufhalten lassen)
 Hard Disk 8GB
(Diese Einstellung passt, da wir die Daten nicht in der vm, sondern im Win Filesystem haben werden)

Die restlichen Einstellungen kann man getrost so lassen.

Wir wechseln nun in den Reiter Options
An dieser Stelle konfigurieren wir direkt die Shared Folders:

1) "Folder sharing" auf "enabled" stellen.

2) Einen Eintrag mittels "Add" erstellen

3) Host Path ist der Pfad zum Verzeichnis, in dem ab sofort die Virtuellen Hosts ihr neues Zuhause finden. Ich verwende für die weitere Konfiguration folgenden Pfad (Sie können natürlich einen anderen verwenden):
D:\

4) Name ist der Name des Shared Folders, bei mir:
ServerRoot

Hinweis:
Achten Sie darauf, dass Sie hier ein Verzeichnis auswählen, das
a) tatsächlich existiert
b) später das Rootverzeichnis für alle Domains sein soll

Unsere virtuellen Hosts werden später wie folgt abgelegt:

D:\ServerRoot\virtualhost1\root
D:\ServerRoot\virtualhost2\root

etc.

Der tatsächliche Pfad kann natürlich abweichen.


settings

Danach einen Klick auf "Next".
Hier muss bei den "additional Attributes" noch die Option "Enable this share" aktiviert werden. Da wir in diesen Container schreiben möchten, lassen wir die Option "Read only" deaktiviert und bestätigen mit "Finish".

Nochmal mit OK bestätigen, dann sollen die nun geänderten Einstellungen korrekt erscheinen und wir starten die virtuelle Maschine mit "Play virtual machine".

Achtung:
Mit hoher Wahrscheinlichkeit meckert der vmware Player beim ersten Start und will wissen, ob man diese VM kopiert oder verschoben hat. Wir wählen in diesem Screen einfach die Option "I copied it".


Startup

Nach kurzer Zeit ist das Linux gebootet und begrüßt und mit einem Login-Promt:

ubuntu login:

DIe nötigen Zugangsdaten findet man in oben erwähnten Howtos oder hier:

username: notroot
password: thoughtpolice

Nach erfolgreichem Login landen wir in der Bash:

notroot@ubuntu:~$

Dieser Teil wäre also geschafft.

Achtung:
Der vmplayer möchte bereits zu diesem Zeitpunkt die vmware Tools installieren. Wir lassen diese Meldung einfach unbeachtet so stehen, da im Moment noch die dafür nötigen Kernel Sourcen fehlen (Keine Sorge, das holen wir alles noch nach)

Hinweis:
Sobald wir in die Konsole geklickt haben, verläßt uns der Mauszeiger und kommt auch nicht zurück. Man kriegt ihn jedoch wieder, in dem man ganz einfach die Tastenkombination Strg+Alt drückt.

Einrichten des Linux-Systems und Installation der Serverkomponenten

Bevor wir ernsthaft mit der Installation beginnen, richten wir uns erst einmal die Bash richtig ein. Dazu gehören vor allem eine deutsche Tastaturbelegung sowie das Aktivieren des Root-Users (Wieso es den nicht gibt).

Zuerst die deutsche Tastatur:

notroot@ubuntu:~$sudo dpkg-reconfigure console-setup

So leid es mir tut: dieser Befehl muss abgetippt werden. Erschwert wird das durch das bis dahin noch amerikanische Tastaturlayout. Der Bindestrich befindet sich auf dem Backslash bzw ß. 

Danach erscheint folgende Meldung:

[sudo] password for notroot:

Hier bitte erneut das Passwort für den User "notroot" eingeben (thoughtpolice).

Danach wird man mehr oder minder komfortabel durch die Konfiguration geführt, folgende Werte sollten ausgewählt werden:

 Keyboard model Generic 105-key (Intl) PC
 The origin of the keyboard Germany
 Keyboard layout Germany
AltGR key replacement No AltGr key
Compose key No compose key
Encoding on the console UTF-8
Set of characters that should be supported by the console fontLatin1 and Latin5
Font for the consoleVGA
Font size16
Virtual consoles in useVorgabewert übernehmen (/dev/tty[1-6])


Nach einer kurzen Weile meldet sich der Bash-Promt wieder und man hat schon mal eine deutsche Tastaturbelegung.

Root-User einrichten:
Normalerweise sollte man diesen Account aus Sicherheitsgründen deaktiviert lassen. Wir haben aber eine vm, auf die eh niemand von aussen zugreifen kann, also machen wir es uns bequem und richten den Root-User ein, in dem wir ihm ein Passwort zuweisen:

notroot@ubuntu:~$sudo passwd root

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Und schon ist der Root-User mit vollen administrativen Rechten eingerichtet. Also melden wir uns direkt vom System ab und gleich wieder mit dem User root an:

notroot@ubuntu:~$ logout

ubuntu login:

user: root

passwort: Ihr Passwort


Aktuelle Softwarequellen besorgen
Wer noch nie mit einem Debian-basierten System gearbeitet hat, wird sich vielleicht wundern: So gut wie jede Software lässt sich ganz einfach von der Kommandozeile mit dem Programm apt installieren. Dabei löst apt direkt alle Abhängigkeiten und potentielle Konflikte automatisch auf und lädt benötigte Zusatzpakete automatisch mit herunter. Danach wird die Software von apt eingerichtet und ist direkt verfügbar - einfacher gehts nicht.

Damit dies funktioniert, braucht apt zuerst eine aktuelle Liste der verfügbaren Software, diese laden wir direkt herunter:

notroot@ubuntu:~$apt-get update

Danach führen wir zuerst ein Systemupdate durch

notroot@ubuntu:~$apt-get upgrade

Nicht erschrecken: apt wird nun wahrscheinlich sehr viele Pakete aktualisieren und installieren wollen, dies kann durchaus einen Download von mehreren hundert Megabyte und ein paar Minuten erfordern. Wir lassen apt das ganz einfach tun und bestätigen die Nachfrage mit yes [y].

Sobald das Update durchgelaufen ist, installieren wir direkt alle Softwarepakete, die wir im weiteren benötigen:

notroot@ubuntu:~$apt-get install apache2 php5 php5-xsl php5-curl php5-gd php5-cli zip

Auch das wird wieder etwas dauern, danach sollte apt die wichtigsten Komponenten heruntergeladen und direkt für die erste Verwendung konfiguriert haben.

Wenn wir schon dabei sind, installieren wir ein paar weitere Pakete:

notroot@ubuntu:~$apt-get install openssh-server linux-headers-generic

Den Openssh-Server brauchen wir, damit wir uns via SSH oder SCP einloggen können. Die Linux-Header, um die VM Tools erfolgreich zu installieren.

Die Grundkonfiguration des Linuxservers wäre somit erfolgreich abgeschlossen.

vmware Tools installieren:
Nun installieren wir die vmware Tools. Im unteren Rand des Konsolefensters sollte sich nach wie vor ein Balken befinden, in dem wir die Möglichkeit dazu kriegen: "Install Tools". Genau das tun wir nun, in dem wir diesen Button anklicken.

Nun erhalten wir einen Hinweis, der uns durch die nächsten Schritte führen möchte:
Make sure that you are logged in to the guest operating system. Mount the virtual CD drive in the guest, launch a Terminal, and use tar to uncompress the installer. Then, execute vmware-install.pl to install VM Tools.

Wem das nun alles zu schnell ging und sich zu kryptisch anhört, folgt dieser Anweisung (Linux Profis kriegen das natürlich auch alleine hin):

1) Wieder mit der Maus ins Terminal klicken

2) Folgenden Befehl eingeben, um ins Verzeichnis media zu wechseln:
root@ubuntu:~$cd /media

In diesem Verzeichnis befinden sich alle mountfähigen Geräte (Was ist mounten?)

3) Danach den Inhalt dieses Verzeichnisses (aka alle mountfähigen Geräte) anzeigen:
root@ubuntu:~$ls -la

Dies erzeugt eine Ausgabe ähnlich zu dieser:
cdrom cdrom0 floppy floppy0

4) Nun mounten wir cdrom mit folgendem Befehl
root@ubuntu:~$ mount /dev/cdrom /media/cdrom

Dies ergibt folgende Ausgabe:
mount: block device /dev/scd0 is write-protected, mounting read-only

5) Jetzt wechseln wir auf das nun gemountete (virtuelle) CDROM Laufwerk
root@ubuntu:~$ cd /media/cdrom

6) Und lassen uns den Inhalt anzeigen:
root@ubuntu:/media/cdrom# ls -la

Ausgabe:
manifest.txt VMwareTools-8.1.4-227600.tar.gz

7) Nun muss der Inhalt des tar.gz Files entpackt werden, aber zuerst kopieren wir die Datei nach /root (denn das CDROM ist schließlich nur read-only)
root@ubuntu:/media/cdrom# cp VMwareTools-8.1.4-227600.tar.gz /root

Das dauert nun eine Weile, am Ende haben wir wieder den inzwischen bekannten Promt.

8) Nun wechseln wir ins Verzeichnis /root:
root@ubuntu:/media/cdrom# cd /root

9) Und entpacken das tgz-File:
root@ubuntu:/root# tar -xzvf VMwareTools-8.1.4-227600.tar.gz

10) Nachdem die Inhalte der Datei entpackt wurden, wechseln wir in das nun vorhandene Unterverzeichnis vmware-tools-distrib:
root@ubuntu:/root# cd vmware-tools-distrib

11) Und können endlich die Installation anstossen:
root@ubuntu:/root/vmware-tools-distrib# ./vmware-install.pl

12) Das interaktive Installationsscript stellt nun ein paar Fragen, die wir aber alle mit RETURN bestätigen können (Einfach alle Vorgaben bestätigen). Dies kann nun ein paar Minuten dauern, am Ende startet das Installationsscript die vmware-Tools neu und installiert noch ein paar Treiber und aktualisiert den Kernel.

Es ist zwar nicht zwingend nötig, aber ich empfehle an dieser Stelle einen reboot:

root@ubuntu:/root/vmware-tools-distrib# reboot

The system ist going down for reboot NOW!

Das schlimmste wäre nun geschafft und wir können uns gleich nach dem Reboot wieder neu anmelden.

Konfiguration des Apache, PHP, der Virtuellen Hosts und Shared Folders

Das Basissystem ist also nun fertig eingerichtet, auch der Apache samt php laufen schon. Um dies zu testen, rufen wir die Adresse des Servers nun einmal von einem Browser des Windowssystems auf.

IP-Adresse des Linuxservers ermitteln:
DIe Adresse des Servers wird automatisch via DHCP des vm-Netzwerk-Adapters vergeben und bleibt in der Regel auch nach dem Reboot gleich. Wer sicherheitshalber die Adresse statisch vergeben möchte, sei auf diesen Artikel verwiesen: statische IP Adresse unter Linux

Wir aber nehmen die dynamisch vergebene Adresse. Bzw wir wollen diese erst einmal erfahren. Dies können wir mit folgendem Befehl tun:

root@ubuntu:~$ ifconfig

Nun erscheint eine Ausgabe sehr ähnlich zu dieser:

eth0 
Link encap: Ethernet HWaddr 00:xx:xx:xx:xx:xx:xx
inet addr: 192.168.x.x Bcast: 192.168.x.255 Mask 255.255.255.0

Hierbei ist der Eintrag inet addr: die der Maschine zugewiesene IP-Adresse.

Und mit genau dieser Adresse testen wir nun die Funktionsweise des Browsers (einfach die komplette IP in die Adresszeile des Firefox auf dem Windows-Host eingeben). Dies sollte der Apache mit einer schlichten aber erfreulichen Meldung quittieren:

It works!


Im nächsten Schritt richten wir die virtuellen Hosts ein und konfigurieren PHP für den optimalen Einsatz. Prinzipiell ist dies alles innerhalb der Konsole des vmplayers mit vi möglich, aber meiner Meinung nach ist vi nur etwas für Masochisten und Notfälle. Um etwas komfortabler arbeiten zu können, starten wir also nun winSCP und verbinden uns mit dem Server:

Rechnername: IP-Adresse des Servers (siehe oben)
Portnummer: 22
Benutzername: root
Kennwort: Das Kennwort, das Sie für den User root vergeben haben

Nun erhalten wir eine Meldung des SSH-Servers, die wir aber beruhigt bestätigen können, und landen danach direkt im Verzeichnis /root des Servers. Von hier aus können wir nun bequem alle Arbeiten an den Konfigurationsdateien mit dem für winSCP eingerichteten Texteditor vornehmen.

Hinweis:
Über winSCP lassen sich zwar Dateien bearbeiten, aber keine BASH-Befehle absenden. Hierfür müssen wir wieder in die Konsole der vm wechseln (oder eine zweite Verbindung mit Putty aufbauen).


Virtuelle Hosts einrichten
Der Apache läuft also, aber wir möchten Virtual Hosts verwenden, um später auch mehr als nur eine Domain mit diesem Server zu bedienen (was sind Virtual Hosts?). 

Wir wechseln nun in winSCP in folgendes Verzeichnis:
/etc/apache2/sites-enabled

Hier befindet sich derzeit eine Standard-Datei für einen Virtuellen Host, diese werden wir als Vorlage für unseren ersten virtuellen Host verwenden. Dazu laden wir diese Datei auf unser Windowssystem, benennen sie dort um und berarbeiten Sie mit einem geeigneten Text-Editor.

Hinweis:
Ich gebe der Datei den Namen 001-grid5.dd.
Im folgenden Sourcecode sind alle notwendigen Änderungen schon durchgeführt, manche Einträge aus der Originaldatei werden nicht benötigt und fehlen daher.
Eine genaue Erklärung der verschiedenen Parameter finden Sie hier:
http://wiki.ubuntuusers.de/Apache/Virtual_Hosts

Hinweis2:
Sowohl das Zielverzeichnis für den virtuellen Host auf unserem Windowssystem als auch das Verzeichnis /server/domains sind noch nicht eingerichtet. Wir werden dies etwas später nachholen.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName vm.grid5.dd
    ServerAlias www.vm.grid5.dd

    DocumentRoot /server/domains/vm.grid5.dd/root
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /server/domains/vm.grid5.dd/root>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog /var/log/apache2/vm.grid5.dd.error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Der Inhalt dieser Datei kann ohne weiteres direkt übernommen werden, bitte beachten Sie, dass Sie dann jedoch an meine Namensvergabe bei den Verzeichnissen gebunden sind. Anderfalls ändern Sie einfach die Verzeichnisnamen in den Direktiven DocumentRoot und Directory ab.

Nach dem Speichern und Übertragen der Datei auf den Server ins Verzeichnis /etc/apache2/sites-enabled ist der virtuelle Host eingerichtet und wird fortan unter der Adresse http://vm.grid5.dd erreichbar sein.

Apache neu starten
Bei jeder Änderung an der Apachekonfiguration, den virtuellen Hosts und der php-Konfiguration muss der Webserver neu gestartet werden. Dies tut man mit folgendem Befehl auf der Konsole:

root@ubuntu:~$ /etc/init.d/apache2 force-reload

Genau das tun wir nun.
Danach erscheint recht fix eine Fehlermeldung - genaugenommen sind es sogar zwei:

* Reloading web server config apache2
Warning: DocumentRoot [/server/domains/vm.grid5.dd/root] does not exist
[error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

Die erste Meldung sagt eigentlich nur, dass das Verzeichnis /server/domains/vm.grid5.dd/root (noch) nicht existiert. Dies ist völlig richtig und wird von uns im nächsten Schritt behoben.

Die zweite Meldung informiert uns, dass wir hier zwei Anweisungen verwenden, die sich nicht vertragen.
Das beheben wir kurz und schmerzlos, in dem wir die bestehende Datei 000-default einfach löschen und danach mit oben genannten Befehl den apache neu starten.

Hinweis:
Hat man diese Datei direkt überschrieben, erscheint die zweite Fehlermeldung natürlich nicht.

Einrichten des Domainnamens für den virtuellen Host
Nun haben wir zwar den virtuellen Host definiert, jedoch kennt unser Linuxserver den Domainnamen vm.grid5.dd noch nicht. Dies können wir (ähnlich wie bei Windows) durch die Bearbeitung der hosts-Datei tun.

Bearbeiten Sie also folgende Datei in winSCP und nehmen untenstehende Erweiterung vor:
/etc/hosts

In dieser Datei werden alle gewünschten Domainnamen an die IP-Adresse des localhost gebunden und führen somit direkt in die virtual Host Konfiguration des Apache (Genaugenommen ist dies ein wenig komplizierter, aber für unsere Zwecke reicht dies. Weitere Informationen gibt es hier: Linux - Wegweiser für Netzwerker)

Die Datei /etc/hosts nach Erweiterung um die gewünschte Domain:

127.0.0.1    localhost
127.0.1.1    ubuntu.localdomain    ubuntu
127.0.0.1    vm.grid5.dd

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Speichern Sie die Datei und überprüfen Sie, ob der Host schon unter dieser Adresse zu erreichen ist:

root@ubuntu:~$ ping vm.grid5.dd

PING vm.grid5.dd (127.0.0.1) 56(84) bytes of data.

64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.298 ms

64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.047 ms

Dies sagt uns vor allem eines: Es funktioniert!


Einrichten der Shared Folders
In der aktuellen Version des vmplayers und der vmware-Tools ist der Löwenanteil dieser Aufgabe schon für uns erledigt worden. Wir werden nun lediglich einen symbolischen Link setzen, der zu dem bereits gemounteten Shared Folder führt.

Von Haus aus kann das Betriebssystem, das in einer VM läuft (der guest) nicht auf das Dateisystem des Betriebssystems zugreifen, auf dem der vmplayer installiert ist (der host). Um dies dennoch zu ermöglichen, bietet der vmware player die Option an, ein oder mehrere Verzeichnisse als sogenannte Shared Folders zu definieren (dies haben wir bei der Basiskonfiguration der virtuellen Maschine schon erledigt, siehe oben).

Der vmware player bindet nun diesen Ordner in das Dateisystem des guest ein und stellt es als gemountetes Gerät unterhalb von /mnt zur Verfügung. Über dieses gemountete Gerät hat der guest (unser Linux) nun Zugriff auf alle Dateien und Verzeichnisse, die unterhalb des definierten Shares definiert sind.

Dies passiert beim Booten automatisch, wir können also jetzt schon auf dieses Verzeichnis zugreifen:

root@ubuntu:/# cd /mnt/hgfs

hgfs ist der Gerätename für den shared Folder und entspricht dem Verzeichnis, das wir vorhin angegeben haben. Hier liegt nun auch der Shared Folder unter dem Namen, wie wir ihn vorhin vergeben haben:

root@ubuntu:/mnt/hgfs# ls -la

ServerRoot


Wir wechseln nun aus der Konsole heraus, öffnen den Windows Explorer und erstellen in diesem Verzeichnis ein neues Verzeichnis für den virtuellen host (inkl. dem Unterzeichnis /root)

D:\ServerRoot\vm.grid5.dd\root

Nun wechseln wir wieder zurück in die VM-Konsole und in das Verzeichnis /mnt/hgfs/ServerRoot:

root@ubuntu:/mnt/hgfs# cd /mnt/hgfs/ServerRoot

Lassen wir uns nun den Inhalt dieses Verzeichnisses anzeigen, ergibt dies folgende Ausgabe:

root@ubuntu:/mnt/hgfs# cd ls -la

drwxrwxrwx 1 root root 4096 2010-04-16 vm.grid5.dd

Der shared Folder ist also korrekt eingerichtet, aber der Pfad führt noch in das /mnt-Verzeichnis:
/mnt/hgfs/ServerRoot/vm.grid5.dd/root

In der VirtualHost Konfiguration haben wir zudem einen anderen Pfad angegeben:
/server/domains/vm.grid5.dd/root

Also setzen wir nun einen symbolischen Link, der diesen Pfad auf den tatsächlichen Pfad "umbiegt":

Zuerst erstellen wir das Verzeichnis /server:

root@ubuntu:/mnt/hgfs# mkdir /server

Danach erzeugen wir den symbolischen Link:

root@ubuntu:/mnt/hgfs# ln -s /mnt/hgfs/ServerRoot /server/domains

Nun überprüfen wir, ob der Pfad gefunden wird:

root@ubuntu:/mnt/hgfs# cd /server/domains

root@ubuntu:/mnt/hgfs# ls -la

vm.grid5.dd

Nun noch den apache neu starten:

root@ubuntu:/mnt/hgfs# /etc/init.d/apache2 force-reload

 * Reloading web server config apache 2   [OK]

Et volia! Nun wird die DocumentRoot wie in der virtual Host Konfiguration gefunden und der Apache startet ohne Fehlermeldungen.


Host-Datei in Windows anpassen
Nachdem nun der Server sowohl den Virtuellen Host kennt und auch den Domainnamen kennt, müssen wir das noch Windows beibringen. Dazu bearbeiten wir die folgende Datei in einem Texteditor:

C:\Windows\System32\drivers\etc\hosts

Hier muss nun noch - genau wie in der Hosts-Datei des Servers - der Domainname mit der IP-Adresse des Servers verknüpft werden:

# Copyright (c) 1993-2009 Microsoft Corp.
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host


# localhost name resolution is handled within DNS itself.
#    127.0.0.1       localhost
#    ::1             localhost


192.168.x.x vm.grid5.dd www.vm.grid5.dd

Fügen Sie einfach dieser Datei die letzte Zeile hinzu, ändern Sie dabei die IP-Adresse in die Adresse Ihres Servers.

Danach können Sie direkt den Firefox starten und den Domainnamen eingeben:

http://www.vm.grid5.dd

Eventuell erhalten Sie nun noch eine Fehlermeldung, da kein index-Dokument für diese Domain vorhanden ist:

Forbidden
You don't have permission to access / on this Server

In aller Regel funktioniert es jedoch nun problemlos und Sie erhalten eine leere Ansicht des Verzeichnisses

Index of /
Name Last modified Size Description

Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch Server at vm.grid5.dd Port 80

PHP5 Konfiguration
Bevor wir nun Weblication GRID installieren, nehmen wir noch ein paar letzte Änderungen an der PHP Konfiguration vor:

Wechseln Sie in winSCP und dort in das Verzeichnis /etc/php5/apache2 auf dem Server. Öffnen Sie nun die Datei php.ini zur Bearbeitung und ändern untenstehende Parameter:

memory_limit = 128M

max_input_time = 120

max_execution_time = 240

post_max_size = 64M

upload_max_filesize = 64M

zlib.output_compression = On

log_errors = On

error_log = /server/domains/php_error.log

Kurze Erläuterung der Parameter:

Da der Server ja uns gehört, können wir sehr grosszügig mit dem reservierten Speicherplatz und der maximalen Skriptlaufzeit sein (memory_limit, max_input_time, max_execution_time). Zudem sind 2 MB für den Datei-upload etwas wenig, also setzen wir die Parameter post_max_size sowie upload_max_filesize jeweils auf 64MB.

Die zlib.output_compression muss aktiviert werden, damit die heruntergeladenen Installationspakete von Weblication auch extrahiert werden können.

Zuguterletzt aktivieren wir noch das Error-Logging (log_errors) und speichern potentielle Fehlermeldungen von PHP in eine Datei (error_log).


Speichern Sie die Datei und starten den Apache neu.

root@ubuntu:/mnt/hgfs# /etc/init.d/apache2 force-reload

 * Reloading web server config apache 2   [OK]

Weblication installieren

Im letzten Schritt werden wir weblication GRID installieren. Laden Sie sich die Setup-Datei von dieser Quelle herunter: 

http://dev5.weblication.de/dev/installation/installation-setup-script.php

Befolgen Sie die dort beschrieben Schritte zur Installation oder machen Sie es sich einfach:

1) Datei herunterladen und extrahieren

2) Die Datei wSetup.php in das Verzeichnis der Domain kopieren (D:\ServerRoot\vm.grid5.dd\root)

3) Datei über den Firefox ausführen:
http://vm.grid5.dd/wSetup.php

4) Den Anweisungen folgen und Weblication installieren.