Leserartikel Virtualisierte Linux PHP Entwicklungsumgebung unter Windows

Enigma

Captain
Registriert
Apr. 2004
Beiträge
3.830
Einleitung
Der größte Teil der Hostinganbieter setzt auf Linux und die meisten Webseiten laufen auf linuxbasierten Systemen. Im Gegensatz dazu Entwickeln fast alle Entwickler unter Windows, da Linux auf dem Desktop einfach noch nicht ausgereift ist und oft viel Zeit verschlingt.

Da sich Webseiten aufgrund des Dateisystems unter Linux anders verhalten (können), sollte man auf dem gleichen Platform entwickeln, auf der auch die Webseite letztendlich läuft. Als ich mit der Webentwicklung angefangen hatte, hat man noch jede Datei nach dem ändern auf den Linux-Webserver übertragen, um das Ergebnis zu sehen. Vor 5 Jahren, hatte ich dann endlich einen günstigen ausgedienten Rechner bekommen und ein Linux aufgesetzt. Der Fortschritt bestand darin, dass nun ein Netzlaufwerk auf dem Rechner freigegeben war, auf dem der Quellcode lag. Eine Änderung wurde somit sofort auf dem Server gespeichert und man konnte direkt das Ergebnis im Browser sehen. Auch größere Uploads gingen dank FastEthernet schnell von statten. Nachteil war, dass man neben dem Lärm auch den Strom bezahlen musste, den der Zweitrechner braucht und zum Teil auch jede Menge ärger mit ausfallenden Platten hatte, da diese oft mehr als 4 Jahre alt waren.

Heute hat jeder Rechner genügend Arbeitsspeicher und Rechenleistung um neben dem eigentlichen Betriebssystem ein weiteres Betriebssystem in einer Virtuellen Maschine laufen zu lassen. Die sogenannte Desktopvirtualisierung stellt hierbei einen Emulator (z.B. QEMU) bereit, welcher die Hardware eines Rechners abstrahiert und diese innerhalb eines Prozesses emuliert. Dieser Prozess sieht dann keine echte Hardware mehr, sondern nur die vorgegaukelte Hardware des Emulators. Das Prinzip ist heute weit verbreitet und wird auch zum Teil von der Hardware beschleunigt. Darüber hinaus müssen viele Funktionen nicht emuliert werden, sondern können direkt an die Hardware übergeben werden (vgl. Xen). Daher sind Virtuelle Maschinen unter normalen Umständen nicht viel langsamer als eine nicht-virtualisierte Umgebung.

Das Ziel dieser Anleitung ist es zu zeigen, wie man eine Virtuelle Maschine mit Hilfe von Sun xVM Virtual Box erstellt und eine komplette LAMP (Linux, Apache, MySQL, PHP) Entwicklungsumgebung darauf laufen lässt.

Vorbereitung und Erstellung der VM
Was braucht man alles?
  • Sun VirtualBox
    Die Installation gestaltet sich recht einfach. Man finden einen Windows-Installer auf http://www.virtualbox.org/. Das Setup sollte kein Problem darstellen und kann einfach durchgeklickt werden.
  • PHP IDE
    Ich kann das Eclipse PDT empfehlen. Eine All-In-One Archiv von Eclipse mit PDT findet ihr unter http://www.eclipse.org/pdt/
  • Linux-Betriebssystem
    Welche Distribution verwendet wird ist Geschmackssache und spielt nur eine untergeordnete Rolle. Da ich selbst viel mit Debian arbeite, werde ich meine Anleitung basierend auf Debian 5 (stable, lenny) erstellen. Einen Download von Debian findet ihr auf http://www.debian.org/CD/netinst/. Dort holt ihr euch am besten das i386-Netinstall-Image.

Los gehts. Wir starten VirtualBox und haben folgende Benutzeroberfläche vor uns:
1.PNG


Da wir eine neue Virtuelle Maschine erstellen wollen, klicken wir im Menü auf Maschine > Neu. Ein Assistent startet und erwartet folgende Eingaben vom Benutzer:
  • Name
    Der angezeigte Name der virtuellen Maschine. Dieser Name ist ein reines Label und hat keine Auswirkungen. Ich habe Webserver gewählt.
  • Typ des Gastbetriebssystems
    Betriebssystem: Linux
    Version: Debian
  • Größe Hauptspeicher
    Ein Webserver kommt vorerst mit 128 MB RAM mehr als aus. Falls es zu wenig sein sollte, kann man es im Nachhinein immernoch ändern. Wenn ihr viel RAM übrig habt könnt ihr auch mehr einstellen - brauchen solltet ihr es jedoch nicht.
  • Virtuelle Festplatte
    Eine Festplatte ist von der Betriebssystemebene aus gesehen ein Blockspeicher der auf Anfrage den Inhalt einer bestimmten Speicherstelle zurückliefern kann. Dateien kennt dieser nicht. Um eine virtuelle Festplatte zu erstellen, nimmt man hierzu einfach eine Datei mit einer vordefinierten Größe. So wird ein Speicherzugriff auf die virtuelle Festplatte auf einen Zugriff auf eine bestimmte Speicherstelle innerhalb der Datei umgesetzt.
    Ein Klick auf Neu erstellt eine solche Datei, welche auch Disk Image genannt wird.
  • Datenspeichertyp
    VirtualBox erlaubt das erstellen eines Images das nicht sofort den vollen Speicher belegt, sondern nur den Speicher benutzt, der auch tatsächlich auf der Festplatte belegt wird und nennt diesen Typ dynamisch wachsendes Medium. Ein Nachteil dieses Typs ist eventuell dass es nicht mit anderen Virtualisierungslösungen kompatibel ist und so erst exportiert werden muss. Einen Geschwindigkeitsnachteil ist höchstens mit der Stoppuhr zu messen - falls überhaupt vorhanden. Vorteil ist jedoch, dass das Image innerhalb von Sekunden erstellt ist. Andernfalls muss erst die komplette Datei geschrieben werden. Moderne Festplatten schaffen 70-100MB/s. Den Rest dürft ihr euch selbst ausrechnen.
  • Lage und Größe der virtuellen Festplatte
    Ein Debian benötigt als Basissystem 515MB Festplattenspeicher. Mit installierten Paketen keine 800MB. Daher sollten 2 GB für eine Spielwiese erstmal ausreichen. Wer mehr glaubt zu brauchen - nimmt mehr. Der Ort ist bei einer kleinen Größe irrelevant. Kann jedoch mit dieser Option auf eine andere Partition (z.B. D: ) verlegt werden.

Nach dem fertigstellen des Assistenten erscheint im Hauptfenster die virtuelle Maschine (VM) in der Liste:
2.PNG


Bevor wir die VM starten, gibt es noch eine wichtige Option die zuerst überprüft werden muss. Wir klicken hierzu auf Datei > Globale Einstellungen und wählen anschließend Links Eingabe aus. Jetzt sieht man den Wert der Einstellung Host-Taste. Diese Taste wird benötigt, um (vereinfacht ausgedrückt) vor der VM wieder zurück ins Windows zu springen. Ich habe hier die rechte Umschalttaste verwendet, da ich auf diese komplett verzichten kann. ALTGR braucht man fürs @. Um die Änderung durchzuführen, klicken wir auf das Textfeld und drücken die rechte Umschalttaste. Das wars - das Fenster kann mit OK geschlossen werden.
6.PNG


Installation Debian
So nachdem die VM angelegt ist gehts los. Wir starten die VM indem wir mit der rechten Maustaste auf die VM klicken und Starten auswählen.
VirtualBox erkennt dass wir die VM zum ersten mal starten und startet einen weiteren Assistenten.
  • Medientyp
    CD/DVD-ROM-Laufwerk
  • Medienquelle
    Jeder Anwender weis, dass man üblicherweise eine CD braucht, um den Computer zu installieren. Da CDs genau wie virtuelle Festplatten auch in Dateiform verwendbar sind, können wir ein ISO-Image als virtuelles Medium verwenden. Also wählen wir Abbild (engl. Image) aus und klicken auf das Ordnersymbol.
    3.PNG

    Jetzt öffnet sich ein neues Fenster mit dem Manager für virtuelle Medien. Hier importieren wir das Debian Netinstall Image über Menü: Aktionen > Hinzufügen. Hier wählt man das ISO-Image aus - in diesem Fall:debian-500-i386-netinst.iso. Ein Klick auf Auswählen schließt das Fenster und zeigt nun das Image an.

Nachdem der Assistent beendet ist wird die VM gestartet und tada: Der Bootloader auf der CD wird geladen und zeigt einen Startbildschirm an:
5.PNG

(Eventuelle Meldungen über 16/24/32-Bit kann man ignorieren und stellen kein echtes Problem dar)

Falls dies nicht geklappt hat, kann man bei einem weiteren Bootvorgang das Image nach dem Starten der VM über das Menü: Geräte > CD/DVD-ROM einbinden > CD/DVD-ROM-Abbild nochmal "mounten". Anschließend über Menü: Maschine > Zurücksetzen einen Reset auslösen.

Auf dem Startbildschirm müsste Install bereits hervorgehoben sein, somit klickt man mit der Maus in das Fenster rein, das den Bildschirm der VM darstellt, und drückt Enter. Man merkt dass nach dem reinklicken kein ALT+TAB mehr funktioniert. Liegt daran, dass man erst die zuvor eingestellte Host-Taste drücken muss (VM fängt alle Eingaben ab), welche auch nochmal unten rechts im Fenster steht.

Die Debian Installation wird ebenfalls von einem Assistenten gesteuert:
  • Choose a default language
    Ich empfehle hier englisch zu wählen. Ganz einfach deshalb, weil 80% der Anwender auch Englisch haben und Fehlermeldungen auf Deutsch oft bei Google keine große Hilfe sind.
  • Choose a country, territory or area
    Other > Europe > Germany
  • Keymap to use
    German
  • Hostname
    Name des Systems - entspricht dem Rechnernamen. Wer hier länger als 10 Minuten überlegt, lässt einfach debian drin!
  • Domainname
    Kann auf diesem System erstmal leergelassen werden
  • Partitioning method
    Guided - use entire disk
  • Select disk to partition
    ide1 master (hda) - 2.1 GB box harddisk
  • Partitioning scheme
    All files in one partition
    Das passt so. Mehrere Partitionen zu verwenden macht für diese Art von System keinen Sinn.
  • Finish partitioning and write changes to disk
    Hier ist normalerweise Vorsicht geboten, da man damit viel kaputt machen kann, falls man Linux als Zweitbetriebssystem installiert. Da dies jedoch eine VM ist und alle Schreibzugriffe innerhalb einer Datei (Disk Image) von statten gehen, kann man sein System nicht kaputtmachen. Die zweite Nachfrage "Write changes to disks" daher ohne schlechtes Gewissen mit Yes bestätigen.
  • Je nach Festplattengeschwindigkeit ist jetzt der richtige Zeitpunkt einen Kaffee zu holen oder das nächste Bier aufzumachen
  • Root password
    Entspricht dem Administrator-Kennwort für Windows.
  • Full name for the new user
    Debian will nicht dass man immer als root Benutzer auf dem System ist und legt daher bei der Installation einen Benutzer mit eingeschränkten rechten an.
    Diese Daten werden mit Username for your account und choose a password for the new user vervollständigt
  • Debian archive mirror country
    Hier sollte Germany vorausgewählt sein
  • Debian archiv mirror
    Da sich diese Liste ändern kann, empfehle ich ftp.de.debian.org oder ftp2.de.debian.org zu verwenden. Wer etwas anderes nehmen will, nimmt einen anderen Provider.
  • HTTP proxy information
    Leer lassen
  • Participate in the package survey
    No
  • Choose software to install
    Nichts ändern und nur Standard system drin lassen und mit TAB zum continue springen. Wir installieren alles weitere selbst.
  • Install GRUB boot loader into the master boot record
    Yes
  • Continue
    Wichtig ist nun das CD Image wieder zu entfernen. Hierzu klicken wir im Menü auf Gerät > CD/DVD-ROM trennen

Das war die Installation. Die VM sollte nun neu starten und direkt von der virtuellen Festplatte booten. Falls nicht: CD/DVD-ROM trennen und neu starten.
7.PNG


Anmelden können wir uns mit dem Benutzer root und dem vorher vergebenen Root-Passwort.

Installation LAMP
Um die benötigten Pakete für unsere LMAP-Umgebung zu installieren führen wir folgenden Befehl aus:
Code:
apt-get install apache2 libapache2-mod-php5 php5-mysql mysql-server phpmyadmin samba vim
Do you want to continue bestätigen wir mit Y.

Jetzt werden Webserver, PHP und Datenbank heruntergeladen, installiert und zum Teil konfiguriert. Darüber hinaus noch ein Server, der die Datei und Druckerfreigabe von Windows unterstützt, um den Server als Netzlaufwerk einzubinden.

Wer mitgedacht hat, frägt sich bestimmt: Wie zum Teufel kommt die Maschine ins Internet? Ich hab doch noch nichts konfiguriert. Richtig. VirtualBox hat die Standardeinstellung, dass neue Virtuelle Maschinen mit der IP-Konfiguration eines virtuellen NAT/DHCP-Routers erhalten. Somit erhält die virtuelle Maschine automatisch die notwendigen Einstellungen und geht über die IP-Adresse des eigenen Rechners ins Internet.

Während der Konfiguration werden noch weitere Daten von kurzen Dialogfenstern abgefragt:
  • MySQL: New password for the mysql root user
    Die Datenbank hat eine eigene Benutzerauthentifizierung und will für den Datenbank-root-Benutzer wieder ein Passwort. Nehmt eins, sonst nervt dieser Dialog.
  • Samba: Workgroup / Domainname
    Relativ egal - im Zweifelsfall nehmt die von eurem Rechner.
  • Samba: Modify smb.conf to use WINS from DHCP
    No
  • PHPMyAdmin: Web server to configure automatically
    Apache2. Hierzu die Leertaste drücken um den Eintrag auszuwählen (*) und mit TAB zu OK springen.

So nun ist alles installiert - fehlt der Feinschliff an der Konfiguration. Aber bevor wir am System rumfummeln, erstellen wir einen Sicherungspunkt, der den aktuellen Stand der VM sichert. Im Menü gehen wir hierzu auf Maschine > Sicherungspunkt erstellen. Die Eingaben sind egal - sollten jedoch einen Wiedererkennungswert haben.

Konfiguration Webserver apache2
Der tut erstmal und man muss nichts größeres ändern.
Zur Vorbereitung der Datei und Druckerfreigabe muss man folgenden Befehl ausführen:
Code:
chown www-data:www-data /var/www
Die Serverkonfiguration findet man unter: /etc/apache2/apache2.conf bzw. die VHost Konfiguration unter /etc/apache2/sites-available/default.

Konfiguration Datenbank mysql5
Dito. Konfigurationsdatei des Servers ist /etc/mysql/my.cnf

Konfiguration PHP
Auch keine spezielle Konfiguration notwendig die nicht zur Laufzeit geändert werden konnte. Die Konfigurationsdatei für das PHP-Modul im Webserver ist /etc/php5/apache2/php.ini

Konfiguration Datei- und Druckerfreigabe
Jetzt wirds etwas komplizierter und man muss die Konfigurationsdatei des Samba Severs ändern. Linux hat hierzu nur gewöhnungsbedürftige Editoren anzubieten. Wer den Editor vi kennt, ist viel geholfen. Da das Howto jedoch auf Anfänger abzielt, schildere ich die Vorhergehensweise mit nano.

Wir öffnen die Konfigurationsdatei mit dem Editor
Code:
nano /etc/samba/smb.conf

Im Prinzip könnt ihr alles so lassen wie es ist, jedoch müssen zwei Änderungen vorgenommen werden. Kommentarzeilen die nicht interpretiert werden fangen mit einer Raute oder Strichpunkt an. Nach den ersten Kommtentarzeilen taucht der Eintrag [global] auf. Direkt unter dieser Zeile fügen wir einen Eintrag hinzu:

Code:
[global]
    security = share

dann gehen wir ganz ans Ende der Datei und fügen folgende Zeilen hinzu:

Code:
[webroot]
    path = /var/www
    browseable = yes
    writable = yes
    public = yes
    force user = www-data
    force group = www-data

Überprüft eure Eingaben nochmal, denn Tippfehler werden mit nicht-funktionieren bestraft. Anschließend gehen wir mit STRG + X aus dem Editor und bestätigen das speichern mit Y und Enter. Jetzt müssen wir die Konfiguration einlesen mit dem Befehl:

Code:
/etc/init.d/samba reload

Netzwerkkonfiguration

Bisher war die Maschine mit einem NAT mit dem Rechner verbunden, was anfangs ohne Probleme funktioniert. Nur müssen wir jetzt irgendwie auf den Webserver zugreifen. Da das NAT zu konfigurieren etwas schwieriger ist, besteht die einfachste Möglichkeit darin, den Rechner mit ins LAN zu hängen. Wer keinen Router mit DHCP daheim hat, muss das vorerst selbst hinbekommen, bis ich Zeit habe das Howto zu weitern.

Wir fahren nun die VM herunter. Hierzu klicken wir im VM-Fenster im Menü auf Maschine > Ausschalten per APCI. Dies sendet das Signal zum Herunterfahren über das Virtuelle BIOS an das Betriebssystem in der VM und entspricht (normalerweise) einem Druck auf den Power-On Button auf eurem Gehäuse.

Nachdem die VM heruntergefahren ist, verschwindet das Fenster. Jetzt können wir die Konfiguration ändern. Hierzu klicken wir mit der rechten Maustaste auf die VM und wählen Ändern aus. Im neuen Fenster gehen wir links auf Netzwerk. Nun muss der Eintrag "Angeschlossen an" bei Adapter 1 (bereits ausgewählt) von NAT in Hostinterface geändert werden. Wichtig ist auch die Liste der Hostinterfaces unten zu überprüfen. Falls mehrere Netzwerkkarten installiert sind, muss die gerade aktive ausgewählt werden. Jetzt bestätigen wir die Konfiguration mit OK und starten die VM wieder. Hierzu klicken wir mit der rechten Maustaste auf die VM und wählen Starten.

Wer wieder das Debian CD-Bootmenü mit installieren erhält, hat vergessen die CD zu entfernen. Hierzu klicken wir im Menü auf Gerät > CD/DVD-ROM trennen.

Nach wenigen Sekunden ist die VM wieder gestartet und frägt nach Zugangsdaten und man meldet sich erneut als root an. Jetzt interessiert uns die IP-Adresse der VM im lokalen Netzwerk. Das bekommt man am einfachsten mit folgendem Befehl raus:
Code:
ip addr show

In der Ausgabe müsste eine Zeile mit eth0 auftauchen. Dieser Eintrag ist die Netzwerkkarte und hat etwas eingerückt einen Eintrag inet auf den die IP-Adresse folgt. In meinem Fall ist es 192.168.68.187. Diese IP-Adresse kann man auch schon vom eigenen Rechner aus pingen.

Netzlaufwerk verbinden
Nun müssen wir das Netzlaufwerk verbinden, in dem alle Dateien vom Webserver liegen. Das Verzeichnis nennt sich Document Root. Am einfachsten geht das über Start > Ausführen. Jetzt tippt man folgendes ein:
Code:
net use W: \\192.168.68.187\webroot /PERSISTENT:YES
(IP-Adresse austauschen!)

Nachdem das Netzlaufwerk verbunden ist, löschen wir die index.html und erstellen eine neue Datei: phpinfo.php. In diese Datei schreiben wir folgenden Inhalt rein:
Code:
<?php
phpinfo();

Testen

Wenn alles geklappt hat könnt ihr nun diese Datei im Browser öffnen, indem man diese unter http://192.168.68.187/ anklickt.

PHPMyAdmin ist unter http://192.168.68.187/phpmyadmin/ erreichbar. Wenn das nicht der Fall ist, folgendes ausführen:

Code:
dpkg-reconfigure phpmyadmin

Und hier den Server apache2 auswählen. Die Zugangsdaten für PHPMyAdmin sind root und das entsprechende root-Passwort für die Datenbank.

Entwickeln
Am besten entpackt ihr das Eclipse auf den Desktop und führt die eclipse.exe aus. Als Workspace gebt ihr das Verzeichnis W:\ an. Dann werden alle Projekte automatisch in das Documentroot des Servers gespeichert und ihr habt das Gefühl, lokal an einem Rechner zu entwickeln. Neue Projekte sind dann automatisch als Ordner auf dem Webserver im Documentroot zu sehen.
 
Zuletzt bearbeitet:
AW: [Diskussion] Virtualisierte PHP Entwicklungsumgebung unter Linux

Hi,

Schönes HowTo !
Nur hier hast du glaube ich was vergessen:
Code:
<?php
phpinfo();
[B][COLOR="Red"]?>[/COLOR][/B]
Ist zwar nicht zwingend notwendig, aber gehört finde ich zu einem schöneren Programmier-Stil dazu ;)
Ansonsten gut geschrieben !

Mfg, Michi.
 
Zuletzt bearbeitet:
AW: [Diskussion] Virtualisierte PHP Entwicklungsumgebung unter Linux

Nope - mit Absicht nicht drin. Nur eine unnötige Fehlerquelle, wenn hinter dem ?> noch leere Zeilen sind, die da nicht sein sollen.
 
Schönes Anleitung, klasse.

Ich für meinen Teil habe abstand von Eclipse PDT genommen, aber nur aus folgenden Gründen:

Keine x86_64 Version
Installation des x86_64 Eclipse und nachträgliches Installieren der PDT-Pakete war nie erfolgreich
Bei zu großen PHP-Code (6000 Zeilen) wurde Eclipse PDT unerträglich langsam

Daher kann ich Netbeans 6.5 als IDE empfehlen. Ist auch Multiplattform-fähig und läuft auf meinem nicht virtualisiertem Debian GNU/Linux 5.0 und unter Windows XP Pro bisher ohne Schwierigkeiten.

Zumal es auch eine lokale Versionskontrolle gibt, falls man nicht auf CVS oder Subversion zugreifen kann / will.

Aber das hat nichts mit diesem Artikel zu tun ;) Der ist für Einsteiger sehr gut gemacht!

Ich würde bei der Virtualisierung noch einen Schritt weiter gehen:

Eine eigene VM für den DB-Server (MySQL, OHNE Apache & Co.)
Eine VM für den Apache2
Eine VM für einen Mailserver

Das ganze mit XEN, Virtualbox or Whatever.

Warum? Weil man dann, sollte man es später in das Produktivsystem nehmen, einfach die VM's migrieren kann.

Dazu muss aber das das Hostsystem entsprechend ausgestattet sein :)
 
Zuletzt bearbeitet:
Als Alternative sollte man vielleicht auch noch VMWare empfehlen. Dabei braucht man nicht zwangsläufig eigene Images erstellen, weil ganze LAMP-Systeme vorkonfiguriert zum Download angeboten werden. Das ist einfacher und erspart den ganzen Installationsaufwand.

Besser als Eclipse+PDT ist Aptana, das auf Eclipse aufbaut und an vielen Stellen besser integriert ist.

Mir ist aber noch nicht ganz klar, wofür ich das brauche. Wenn ich entwickele, dann kann ich auch alles direkt auf dem Rechner laufen lassen. Zwischen der IDE und den Server-Komponenten muss ich ja nicht zwangsläufig differenzieren. Einen wirklichen Vorteil sehe ich hier gerade nicht in einer VM..
 
Zuallererst: Sehr nettes How-To, gut erklärt und einfach zu verstehen.

Allerdings werde ich glaub ich nie wirklich den Sinn hinter einer IDE-Umgebung verstehen. Alles was ich brauch ist n Texteditor mit Syntaxhervorhebung und eben eine Testumgebung wie XAMPP. Ich hatte Eclipse mal ausprobiert, jedoch mit eher mäßigem Erfolg... Um nicht zu sagen, dass des vollkommen misslungen war^^ Vor allem reichlich kompliziert, die Projektstruktur gefällt mir ebensowenig und viel schlimmer ist halt, dass Eclipse mMn. recht lahm ist, vor allem beim Start (Notepad++ vs Eclipse -> 3 Sekunden vs. 30)...

Vll wär mal n Eclipse (oder ähnliche IDEs) How-To nicht verkehrt?
 
Welche IDE ihr verwendet ist wirklich egal. Ihr habt durch das Netzlaufwerk direkten Zugriff auf das Document Root und könnt auch mit Notepad arbeiten.

Ich nutze Eclipse PDT auch im Büro, und habe dort Projekte die auch weit jenseits von 10k Zeilen Code sind. Skalierungsprobleme sind mir keine bekannt.

Im professionellen Umfeld haben wir auch Xen im Einsatz, mit allen Spielereien die man sich nur vorstellen kann. Jedoch ist XenServer eine Stand-Alone-Anwendung und erfordert noch einen weiteren Rechner. Genau das sollte einem erspart bleiben.

Warum eine VM? Hauptsächlich aus dem Grund, weil fast jeder Hostinganbieter auf Linux-Webserver setzt. Da allein schon der Dateizugriff unter Linux und Windows grundlegend verschieden ist, erspart es viel Ärger wenn man die Anwendung online laufen lassen will. Zudem lassen sich unter Linux viele Funktionen oder Programme über die Shell nutzen, die unter Windows so nicht (einfach) umsetzbar sind.
 
Zuletzt bearbeitet:
Dem stimme ich so nicht zu. Es gibt mittlerweile die Windows PowerShell, die einiges an Funktionen hinzugefügt hat. Ebenfalls gibt es diverse Portierungen von Linux-Befehlen, die den gesamten Rest ersetzen.

Wenn ich eine Webanwendung baue, dann muss ich aber alleine schon im Sinne des Kunden darauf gucken, dass alle verwendeten Funktionen systemunabhängig (d.h. für alle Systeme, auf denen z.B. PHP betrieben werden kann) eingesetzt werden. Dazu gehört es auch, Dateipfade entsprechend zu optimieren. Wenn ich von Anfang an nur für ein Betriebssystem programmiere, weil ich die Dateipfade nicht vernünftig anpasse, habe ich später bei einer Migration auf ein anderes System üblicherweise einen enormen Zusatzaufwand, der so nicht aufkommen muss.
 
Kommt drauf an Stefan. Absolute Pfade z.B. musste eigentlich nicht angeben, hauptsache die Pfadstruktur im Script selbst funktioniert einwandfrei. Man sollt eher drauf achten, welche Funktionen von PHP beispielsweise nur auf Linux oder nur auf Windows funktionieren - dem stimm ich dir also zu, ist aber wichtigste Prio mMn. Mit Pfaden hatte ich bisher absolut nie Probleme, egal ob ich ein Script auf Windows entwickle und teste und auf Linux nutze.

Aaaaber: Das gilt auch ausschliesslich NUR dann, wenn du etwas zusammenscriptest, was für die Allgemeinheit sein soll. Nur dann machts Sinn diverse Systeme zu berücksichtigen - bei standalone/exklusiv-Projekten wäre des womöglich relativ Sinnfrei.


Zur Powershell: Haste da zufällig ein paar gute (deutsche) Links? Scheinst dich da wohl n klein wenig auszukennen, wäre für mich recht interessant mehr drüber zu erfahren (nein, ich scheu mich nicht vor Recherchearbeit, nur das passende zu finden könnte länger dauern, was blöde wär wenn jemand gute Tipps schon parat hat ;) ).
 
Die zentrale Seite zur Powershell ist die hier: http://www.microsoft.com/germany/technet/scriptcenter/hubs/msh.mspx. Da findest du ansich alles, um direkt loslegen zu können (Download, Tutorial, Archiv, Webcasts). "Freie" Ressourcen gibt es ansonsten relativ wenig, zumindest sind diese noch nicht so ausführlich, wie sie sein könnten.

Wenn du dich intensiver mit dem Thema beschäften willst, lies die TecChannel-Artikel zum Thema PowerShell. Da ist immer mal wieder etwas dabei, was interessant ist und bei dem Thema weiterhilft. Achja, eventuell sind einige ältere Sachen nicht unter PowerShell, sondern unter Monad zu finden. Das war in der Beta der Codename.
 
Gut gemacht und gute OS wahl ;).
Doch ich finde VMs sehr träge, auch bei neueren CPUs mit Virtualdisierungstechnik und viel RAM in der Kiste.
Ich entwickel son bissel PHP Sachen auf Linux (Debian Lenny) und muss nur als einzigen Umstand Feststellen das ich keine IE hab (naja eigentlich will ich ihn auch nicht).

Ach ja und es wäre gut wenn du das mit der Virtualisierungstechnik im BIOS erwähnen würdest sonst laufen die Maschinen nicht so schnell.
 
danke!

was ich noch kapieren musste ist, dass obwohl VM auf dem Physikalischen Betriebssystem läuft, aus der Netzwerkkarte trotzdem zwei verschiedene IP's und dementsprechend zwei MAC-Addressen kommen :freak: Ich hatte fast damit gerechnet, dass ich ausserhalb des PC's nur eine IP sehen würde.
Die Netzwerkbuchse hat sich zu einem Switch verwandelt :D
ich kenne das zwar schon, aber hab es total vergessen ^^

Ich hab selber schon Routers auf alten Rechnern gebaut
Nun meine Frage: Ist es eigentlich irgendwie möglich, einen Router-OS einzurichten?
D.H. Ich schliesse das Modem direkt an die Netzwerkbuchse, so dass zuerst der Router das Signal mit PPPoE korrekt bearbeitet und dann ein NAT-Netzwerk erstellt, so dass der physikalsiche Rechner über einen zweiten virtuellen adapter des Routers sich dort anschliesst? (der physikalische Rechner bräuchte dann selber auch einen
virtuellen Adapter)
Falls das gehen würde, wäre das genauso sicher wie wenn ich zwei Geräte dafür hätte? Ich müsste dann einfach davon ausgehen, dass (z.B.) Windows sich gegen das erste Signal, welches direkt vom Modem kommt, abschirmt.
Naja wenn ich mir das so durchlese, bekomme ich nun doch Zweifel, ob das überhaupt realisierbar ist. :/
 
Klar geht das - nur hab ich festgestellt dass es verdammt schwer ist zu erklären wie so etwas geht, wenn man keine/wenig Netzwerkgrundlagen voraussetzt. Zudem geht die Konfiguration über die Fähigkeiten der GUI hinaus und wollte bei Gelegenheit einen 2. Artikel darüber zusammenschreiben. Hier auf jeden Fall mal ein guter Link der ein paar aufschlussreiche Bildchen mitliefert ;)

http://www.nwlab.net/tutorials/virtualbox/

PS: Da du ein bissl an der Konfiguration der VM rumspielen musst - hier liegt sie:
C:\Dokumente und Einstellungen\username\.VirtualBox\Machines\Webserver\Webserver.xml
 
Zuletzt bearbeitet:
Hmmm schon eine sehr eigenartige "Vision".... man müsste die physikalische Schnittstelle ausschließlich einer virtuellen Maschine zur Verfügung stellen. In dieser VM läuft beispielsweise ein IP-Cop oder Endian, um als Firewall und Router zu agieren. Diese VM hätte noch weitere Schnittstellen, die an das Hostsystem weitergereicht werden können oder müssen.

Unter Linux (mit Xen) hab ich sowas im Einsatz: dort hat der Server (Host) allerdings mehrere physikalische Schnittstellen. Die, die ans Modem angeschlossen ist, wird allerdings nur von einer virtuellen Maschine genutzt.

Das geht soweit ganz gut. Aber keine Ahnung, ob sowas auch mit Windows geht. Es ist bestimmt möglich, ohne auf irgendwelche Drittanbieter Tricks angewiesen zu sein.
 
Schönes Tutorial und meiner Meinung nach "Best Practices" für die Webentwicklung, nicht nur mit PHP. Denn die gesamte Konfiguration, samt des Dateisystems kann in der virtuellen Festplatte einfach gespeichert werden und "mitgenommen" werden. Evtl. für Präsentationen beim Kunden o.ä. nützlich. Und noch ganz wichtig: Spart auf jeden Fall Strom :-)
 
oder du installierst einfach xampp=)
 
Mhh! Da hab ich ja wieder alles in einem Ordner lokal und keine echte *nix - Umgebung und nicht nur einfach eine Datei.
 
Zurück
Oben