michael trenkler eBuisness Solutions
Humboldtstraße 1
79098 Freiburg
info@mtcd.de | |
Telefon | +49 761 453 89 72 |
Mobil | +49 151 234 34 080 |
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://qemu-buch.de/d/Anhang/ Weitere Virtualisierer und Emulatoren/ VMware-Player
Die Vorteile einer solchen Installation sind vielfältig:
In dieser Anleitung setze ich ein paar Dinge voraus:
Noch da? Auf gehts!
Am Ende möchten wir eine Linux-Installation innerhalb einer virtuellen Maschine mittels VMWare haben. Auf diesem Linux wird folgende Software installiert sein:
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.
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.
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
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:
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
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.
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".
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.
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 font | Latin1 and Latin5 |
Font for the console | VGA |
Font size | 16 |
Virtual consoles in use | Vorgabewert ü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.
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]
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.