Lokaler Webserver zur Webentwicklung

Solange ein Webentwickler „nur“ HTML-Seiten entwürft und entwickelt, ist es kein Problem diese direkt im Browser seiner Wahl anzeigen zu lassen. In der Regel reicht dazu ein Doppelklick auf die entsprechende HTML-Datei oder das Datei-Menü des Browsers. Aber sobald es darum geht, Seiten mit Programmiersprachen wie beispielsweise PHP zu entwickeln, wird es schon etwas komplizierter. Denn in der Regel funktioniert es hier nicht so einfach, der Browser kann mit ein paar Tricks zwar noch das HTML-Gerüst anzeigen, aber bei den PHP-Befehlen wird er streikeb.

Das liegt daran, dass Programmiersprachen wie PHP, im Gegensatz zu beispielsweise JavaScript, nicht direkt im Browser interpretiert werden, sondern zu den Server-Programmiersprachen gehört, die auf dem Webserver kompiliert und interpretiert werden und als fertiges statisches HTML an den Benutzer in den Browser zurückgeschickt werden.

Nun hat man als Webentwickler zwei Möglichkeiten:

  • Entweder man nutzt seinen bereits vorhandenen Webserver beim Hoster und lädt dort seine entwickelten Skripte hoch und testet sie dann dort

oder

  • man hat einen lokalen Webserver zur Verfügung.

Ich möchte nun beschreiben, wie einfach es doch sein kann, sich einen lokalen Webserver auf seinem Rechner, an dem man auch die Webseiten entwickelt, installiert, der auch Skriptsprachen wie PHP unterstützt. Dabei beziehe ich mich hier auf :ubuntu: Ubuntu (Linux) und den Webserver namens Apache. Wer Windows oder Mac benutzt, sollte sich mal bei XAMPP umschauen. XAMPP kann auch für Linux eingesetzt werden, aber Linux bringt in der Regel von Haus aus die Möglichkeit mit, einen Apache-Webserver direkt lokal zu betreiben.

Normaler Weise wird Apache nicht sofort bei Ubuntu installiert. Das ist also zunächst fällig.

sudo apt-get install apache2

Mit der Standardkonfiguration sollte Apache nun ab sofort über den Browser eurer Wahl per http://localhost aufgerufen werden.

Das sollte dann in etwa so aussehen:

Man könnte nun unter /var/www seine HTML-Dateien abgelegen und wie oben erwähnt abrufen. Doch das ist noch etwas zu unkomfortabel, hier würde es sich eher eignen, einen Ordner im eigenen Home-Verzeichnis mit den entsprechenden Rechten nutzen zu können. Dafür bietet sich das Userdir-Modul für Apache an. Dieses wird einfach aktiviert.

sudo a2enmod userdir

Nun sollte man noch den Ordner public_html in seinem Home-Ordner anlegen, falls dies nicht automatisch geschehen ist.

mkdir /home/USER/public_html

Damit das Ganze auch wirklich funktioniert, muss man noch dem Home-Ordner des Benutzers mehr Zugriffsrechte zuschreiben.

sudo chmod 755 /home/USER

Jetzt kann man auch im Ordner /home/USER/public_html seine HTML-Dateien ablegen und per http://localhost/~USER abrufen.

Je nach dem was für Skripte man programmieren möchte, sollte man noch das dazu passende Modul installieren und aktivieren. Ich beziehe mich in diesem Beispiel auf PHP.

sudo apt-get install php5

sudo a2enmod php5

Und Apache neustarten

sudo /etc/init.d/apache2 restart

Hinweis: Scheinbar gibt es derzeit einen Bug betreffend PHP5 und Apache (tritt bei mir unter Debian 5.0 und Ubuntu 11.04 auf). Dabei werden PHP-Dateien nicht angezeigt, sondern ein Download-Fenster geöffnet. Hier sollte man folgendes machen:

sudo a2dismod

sudo nano /etc/apache2/apache2.conf

Dort am Ende folgendes einfügen.

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

Und den Apache neustarten

sudo /etc/init.d/apache2 restart

Wenn alles geklappt hat, sollte es nun möglich sein, PHP-Skripte über den lokalen Server abzurufen.

php_info()

Wer jetzt noch etwas Sicherheit oben drauf haben möchte und Angst hat, dass sein Webserver von außen erreichbar sein könnte (bei Standardkonfiguration über Port 80 der Fall), beispielsweise im Netzwerk oder im Internet, sofern der entsprechende Port geöffnet ist, kann es folgender Maßen erreichen, dass der Server nur über den lokalen Rechner aufgerufen werden kann.

sudo nano /etc/apache2/ports.conf

Listen 80

ändern zu

Listen 127.0.0.1:80

Danach den Apache neustarten

/etc/init.d/apache2 restart

Nun kann man auf seinem lokalen Ubuntu-Rechner auch PHP-Skripte direkt testen. Demnächst werde ich auch darüber berichten, wie man diesen lokalen Server optimal mit der Webentwicklungsumgebung Aptana Studio koppeln kann. ;-)

PG

Felix

 – Autor des Artikels

10 Reaktionen auf “Lokaler Webserver zur Webentwicklung

  1. Marc sagt:

    Früher hatte ich auch einen lokalen Testserver zuhause, auf einer kleinen SuSE.
    Mittlerweile nutze ich aber fast nur noch eine Test-Subdomain auf dem produktiven Server…

  2. Felix sagt:

    @Marc

    Früher stand mein Webserver direkt zu Hause, da war das auch alles einfach machbar :-) Aber auf meinem Root Server habe ich ebenfalls eine kleine Subdomain für Tests. Aber das ständige hoch- und runterladen hat mich dann irgendwie doch genervt und da ich eh an einem Linux-Rechner sitze, war es kein großer Aufwand dort einen Apache zum Laufen zu bringen ;-)

  3. […] nur scheinbar einen seltsamen Pinsel erwischt, kenn mich mit Paint aber überhaupt nicht aus. Hey Felix, hast du nicht auch Lust? Tags: blogparade, katze, malenKommentar FeedNoch keine Kommentare […]

  4. […] Lokaler Webserver zur Webentwicklung (2011) […]

  5. michael sagt:

    Hi.

    Habe Deine Anleitung via Google gefunden und Schritt für Schritt befolgt. Leider kann ich keine PHP Dateien aus dem Benutzerverzeichnis aufrufen. Habe im Ordner public_html eine phpinfo Datei erstellt. Wenn ich diese im Browser aufrufen wird mir nur der Code der Datei angezeigt. Das PHP Modul ist geladen, genau wie userdir. Kopiere ich die Datei nach /var/www/ und rufe sie dann auf, wird mir die phpinfo richtig angezeigt. Hast Du ne Idee was hier nicht stimmt?

    • Felix sagt:

      Hi Michael,
      willkommen auf meinem Blog.

      Es kann sein, dass unter public_html das PHP Modul nicht geladen wird.
      Schau mal in der Konfigurationsdati von PHP nach (/etc/apache2/mods-available/php5.conf) nach.
      Da könnte so etwas stehen:
      IfModule mod_userdir.c
      Directory /home/*/public_html
      php_admin_value engine Off
      /Directory
      /IfModule

      Das heißt, dass PHP in public_html nicht geladen wird. Nimm diese Zeilen raus und starte Apache neu (service apache2 restart). Danach sollte es laufen.

      Ich hoffe, das hilft dir.

    • Michael sagt:

      Hallo Felix,

      sorry hatte zu vorschnell meine Frage abgefeuert :innocent: Hab Deinen Lösungsvorschlag schon unter http://goo.gl/625Bm gefunden und umgesetzt. Funktioniert einwandfrei! Danke trotzdem.

      Vielen Dank auch nochmal für die obige Anleitung. Ich hatte eine solche Anleitung schonmal in meinem eigenen Blog geposted, damals aber keine Lösung für das Home-Verzeichnis gefunden. Damit hast Du mir auch dieses Rätsel gelöst ;-) Vielen Dank und schönen Sonntag noch!

    • Felix sagt:

      Hallo Michael,

      freut mich, wenn dir meine Anleitung geholfen hat. Dann viel Spaß beim Entwickeln :wink:

  6. Daniel sagt:

    Nach endlosen Versuchen mit Lampp/Xampp und meinem begrenzten Wissen über Ubuntu, in Ubuntu arbeiten zu können, bin ich endlich auf dieses kleine Tutorial gestoßen.
    Klasse! :)
    Der Befehl sudo a2endismod gibt bei mir zwar aus, dass dieser Befehl nicht gefunden wurde bzw. bekannt ist aber es funktioniert trotzdem tadellos.

    • Felix sagt:

      Hallo Daniel,
      freut mich, dass der Artikel hilft.
      Der Befehl a2endismod funktioniert natürlich nicht, es muss a2dismod heißen. Das habe ich im Artikel gleich korrigiert. Danke für den Hinweis und viel Erfolg mit deinem Apache.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

:alien: :angel: :angry: :annoyed: :left: :right: :blush: :carefree: :cool: :cry: :devil: :laughdevil: :fools: :geek: :hay: :innocent: :laugh: :love: :shock: :offended: :sad: :sick: :unhappy: :silly: :smile: :speechless: :supershock: :-o :teasing: :wink: :zombie: :zzz: :-* xD :nomnomnom: :oh: :ghost: :teddy: :fussball: :ubuntu: :piratenpartei: