öffentlich
Redaktion Druckversion

PHP lernen (1): Einführung, Installation und erste Schritte

Installation und Konfiguration eines WAMP

Um PHP zu programmieren und zu testen, brauchen Sie zunächst einen Editor, in dem Sie den Code schreiben, dann einen Webserver, der für PHP konfiguriert ist, natürlich PHP und zu guter Letzt einen (oder mehrere) Browser zum Aufrufen und Testen der Seiten.

Statische HTML-Dateien werden üblicherweise durch einfaches Öffnen im Browser getestet. Ein Doppelklick auf eine PHP-Datei im Windows Explorer hat jedoch nicht den gewünschten Effekt. PHP-Dateien müssen über den Webserver aufgerufen werden, damit der PHP-Code an PHP geschickt und generiert werden kann. Sie können Ihre PHP-Skripte zum Testen auf einen FTP-Server im Internet laden und dort über den Domainnamen aufrufen. Das ist lästig, weil der Arbeitsschritt des Hochladens nach jeder Änderung im PHP-Skript notwendig ist. Alternativ können Sie sich vielleicht in Ihrer Firma einen Testbereich auf einem bereits installierten und konfigurierten Webserver einrichten lassen. Das wäre schon komfortabler, weil Sie über das Firmennetzwerk direkt an den Dateien auf dem Webserver arbeiten können.

Haben Sie diese Möglichkeit nicht, weil Ihr Rechner sich zum Beispiel gar nicht in einem Netzwerk befindet, ist die lokale Installation eines Webservers sinnvoll, der für PHP konfiguriert ist. Sie installieren auf Ihrem Arbeitsrechner einen Webserver und PHP und rufen in einem Browser auf dem gleichen Rechner Ihre PHP-Skripte über diesen Webserver auf. Die Installation ist dank zuverlässiger Konfigurationstools kein Problem mehr.

Als Webserver verwenden wir den Apache. Grundsätzlich kann ein beliebiger PHP-fähiger Webserver für den Einsatz von PHP konfiguriert werden. Es spricht jedoch einiges dafür, den Apache-Webserver für die Testumgebung unter Windows zu nutzen: PHP wurde ursprünglich in der Unix-Umgebung im Einklang mit dem Apacheserver entwickelt. Der Apache hat die größte Verbreitung im Internet als Produktionsserver. Die Testumgebung möglichst dicht an der Zielumgebung zu halten, vermeidet Probleme beim Übertragen des fertigen Projektes in die Produktionsumgebung. Die offene Verfügbarkeit als Open-Source-Produkt ist ein weiterer Grund für die Wahl dieses Webservers. Der Server läuft schnell, stabil und die Konfiguration unter Windows ist nicht sehr aufwändig.

Auch der Internet Information Server (IIS) oder dessen kleiner Bruder Personal Webserver (PWS) können für die Ausführung von PHP konfiguriert werden. Der PWS kann PHP jedoch nur als CGI ausführen und bietet wenig Flexibilität für die Konfiguration (zum Unterschied zwischen PHP über CGI siehe unten). Außerdem kommt er nirgendwo zum offiziellen Einsatz als Webserver bei den Providern, so dass es keinen Grund gibt, diesen Server in der Entwicklungsumgebung einzusetzen.

Im IIS kann PHP zwar auch als Modul laufen, allerdings kommt es gerade beim Testen häufiger mal zum Absturz des Parsers, der sich dann nur mit einem Neustart des Servers wiederbeleben lässt. Die Konfiguration ist ungleich aufwändiger. Nur wenn Sie ein Projekt entwickeln, das später auf einem IIS laufen wird, sollten Sie auch auf einem solchen Testsystem entwickeln. Ansonsten ist die Verwendung des IIS nicht sinnvoll. In der Regel wird der Zielserver ein Unixsystem mit Apache sein. Daher verwenden wir hier den Apache.

Wenn Sie schon einen lokalen Apache mit PHP aufgesetzt haben, dann stellen Sie bitte nur sicher, dass Sie einen Apache in einer Version 1.3 oder höher und PHP in einer Version 4.3 oder höher installiert haben. Wenn Sie ältere Software eingerichtet haben, sollten Sie ein Update vornehmen. Ansonsten können Sie diesen Abschnitt 1.5 komplett überspringen! Sie brauchen Ihr System nicht unbedingt zu aktualisieren, wenn Sie Apache 1.3 mit PHP 4.3 eingerichtet haben!

Dieser Einsteigerworkshop wendet sich an Windowsbenutzer, wir werden in den kommenden Abschnitten ein lokales Testsystem für Windowssysteme einrichten. Wir brauchen den Webserver Apache und PHP. Das Datenbank Management System MySQL werden wir in diesem Workshop nicht manuell installieren, da wir uns nicht mit den Datenbankfunktionen von PHP befassen. Wenn Sie XAMPP von den Apachefriends verwenden (siehe unten), wird MySQL mitgeliefert. Das schadet nicht. Ein System aus Windows, Apache, Mysql und PHP wird WAMP genannt.

WAMP

WAMP steht für Windows, Apache, MySQL und PHP. Bei Problemen mit der Installation oder Konfiguration des Testservers, finden Sie im Internet Hilfe unter dem Stichwort WAMP.

Unter Linux heißt dieses System übrigens LAMP für Linux, Apache, MySQL und PHP. Der Apache ist bereits vorinstalliert, Sie müssen nur noch PHP unter YAST aktivieren. Sogar für Mac-User gibt es die Möglichkeit, ein Entwicklungssystem aufzusetzen. Dank des Linux-Kernels von MAC OS X sind Apache und PHP in heimischer Umgebung. Dieses System wird manchmal MAMP genannt.

XAMPP

Das freie Tool XAMPP ist eine Entwicklung der Apachefriends, ein non-profit Projekt zur Förderung des Apache Web-Servers und verbundener Technologien wie MySQL, PHP und Perl. Das Tool installiert zuverlässig Apache, MySQL, PHP, Perl und ein bisschen mehr auf unterschiedlichen Plattformen. Das X steht für die unterschiedlichen Plattformen wie Windows, Linux oder Mac OS X.

Wenn Sie noch keine oder wenig Erfahrung mit Client-Server-Technologien haben, empfehle ich Ihnen dringend, XAMPP zu benutzen. Sie können den Apache und PHP natürlich auch manuell installieren. Dabei müssen Sie aber mit Problemen und vor allem großem Zeitaufwand rechnen. Wenn Sie mehr Zeit zum Üben mit PHP haben wollen, gehen Sie also den kürzeren Weg mit XAMPP. Sollten Sie Fragen zur manuellen Installation und Konfiguration haben, wenden Sie sich bitte gerne im Forum an mich. Ich gebe Ihnen bei Bedarf ausführliche Anleitung an die Hand.

In jedem Fall brauchen Sie Vollzugriff auf Ihr Betriebssystem, melden Sie sich also gegebenenfalls mit Administratorrechten an.

Gehen Sie nun auf die Homepage der Apachefriends und suchen dort den Downloadbereich für XAMPP für Windows.

Sie finden hier das Basispaket XAMPP Windows. Wenn Sie es ganz einfach haben wollen, laden Sie sich den Installer für XAMPP Windows herunter. Die exe-Datei des Installers installiert alle Komponenten und übernimmt die entsprechenden Einstellungen. Sie müssen nur ein Zielverzeichnis angeben.

Falls Sie Windows Vista benutzen, beachten Sie bitte den Hinweis der Apachefriends, ein alternatives Verzeichnis für die Installation zu benutzen. Installieren Sie XAMPP nicht im Standardverzeichnis C:\program files bzw. C:\Programme. Wählen Sie möglichst ein Verzeichnis direkt in der root (root = Wurzel, hier Wurzelverzeichnis, auch Stammverzeichnis), also z. B. C:\. XAMPP Windows wird hier ein Verzeichnis XAMPP mit allen Dateien anlegen. Auf allen anderen Windowsbetriebssystemen ist es ebenfalls sinnvoll, das Wurzelverzeichnis zu wählen, weil Sie dann später die PHP-Skripte nicht so tief in der Dateistruktur ablegen müssen. Dazu weiter unten mehr.

Rufen Sie nun das XAMPP Control Panel auf. Hier können Sie die unterschiedlichen Dienste und starten und stoppen. Uns interessiert hier im Moment nur der Apache. Starten Sie also den Apache, falls er noch nicht gestartet ist.

Öffnen Sie nun einen Browser und geben in die Adresszeile http://127.0.0.1 oder http://localhost ein. War die Installation erfolgreich, sehen Sie die sehr orangefarbene Seite von XAMPP mit zahlreichen Einstellungsoptionen. Herzlichen Glückwunsch!

Wer ist eigentlich dieser localhost?

Der Standardname des lokalen Webservers lautet localhost oder 127.0.0.1 ein. Die IP-Adresse 127.0.0.1 ist die Standard-IP-Nummer für den localhost, also den eigenen Rechner. Der Host (engl. Wirt, Gastgeber) ist der Rechner, der einen Dienst zur Verfügung stellt, hier also den Webserver. Und local erklärt sich selbst. Mit diesem Namen können Sie nur Ihren eigenen Rechner erreichen. Jemand anderes könnte über diesen Namen nicht auf Ihren Rechner zugreifen, er würde über den localhost seinen eigenen Rechner erreichen.

Ausführliche und verständliche Anleitungen zur Installation von XAMPP mit und ohne Installer finden Sie zusätzlich ganz unten unter den Downloadlinks auf der Homepage der Apachefriends.

Sicherheit Ihrer Konfiguration unter XAMPP

Wenn Sie die Sicherheitskonsole unter Security aufrufen, wird Ihnen XAMPP mitteilen, dass Ihr System unsicher ist. Das ist zunächst akzeptabel, da es sich um ein reines Testsystem handelt. Dass Sie über eine Firewall verfügen, setze ich voraus. Diese Firewall sichert Ihr System gegen das Internet ab, auch wenn das System intern unsicher ist.

XAMPP ist nicht für den Produktionseinsatz gedacht, sondern nur für Entwickler in Entwicklungsumgebungen. Das hat zur Folge, dass XAMPP absichtlich nicht restriktiv, sondern im Gegenteil sehr offen vorkonfiguriert ist. Für einen Entwickler ist das ideal, da er so keine Grenzen vom System vorgeschrieben bekommt. Ändern Sie bitte zunächst nichts an den Voreinstellungen von XAMPP!

Netzwerkrechner

Für einen Produktionseinsatz ist XAMPP in dieser Konfiguration natürlich vollkommen ungeeignet! Falls Sie Ihren Rechner mit XAMPP in einem Firmen-Netzwerk betreiben, er aber nicht von anderen Rechnern in Ihrem Netzwerk aus erreichbar sein soll, dann sollten Sie ein Passwort für MySQL und auch einen Verzeichnisschutz für die XAMPP-Seiten einrichten. Wenn Sie den MySQL-Server gar nicht erst starten, brauchen Sie natürlich auch kein Passwort MySQL. Für diesen Workshop brauchen Sie kein MySQL!

Falls Sie das Passwort für MySQL setzen, muss auch phpMyAdmin angepasst werden. Anschließend ist ein Neustart von MySQL notwendig. Wenn Sie den Folgeworkshop PHP und Datenbanken mit MySQL gebucht haben, werden wir diese Schritte später gemeinsam unternehmen. Wenn nicht, schauen Sie bitte in die Dokumentation für XAMPP für eine detaillierte Anleitung zum Absichern von MySQL. Im Zweifelsfall starten Sie einfach MySQL nicht, dann haben Sie auch in einem Netzwerk keine Sicherheitsprobleme.

Falls Sie Fragen dazu haben, wenden Sie sich bitte an unser Forum. Ich gebe Ihnen bei Bedarf gerne weiterführende Hinweise.

Siehe dazu auch "Die XAMPP Sicherheitskonsole". Beachten Sie zusätzlich die Readme-Datei der Apachefriends zur aktuellen Version von XAMPP.

Editor

Zum Abschluss brauchen Sie noch einen Editor, in dem Sie Ihre PHP-Skripte schreiben und speichern können. Als Editor reicht grundsätzlich jeder einfache ASCII-Editor wie z. B. der auf jedem Windowssystem vorhandene Windows-Editor. Der hat allerdings den entscheidenden Nachteil, dass er über keine Zeilennummerierung verfügt. Das Problem wird spätestens dann deutlich, wenn der Parser einen Fehler in Zeile 178 anzeigt! Mindestens eine Zeilennummerierung sollte der Editor, den Sie benutzen, also haben. Das ebenfalls in Windowssystemen mitgelieferte Notepad verfügt immerhin über die Zeilennummerierung. Komfortable Editoren sind aber beide nicht.

Praktisch ist eine farbige Syntaxhervorhebung, die bestimmte Elemente des Codes wie Variablennamen und PHP-Funktionen in bestimmten Farben darstellt und den Code somit leichter lesbar und einfache Syntaxfehler augenfällig macht. Ist der Funktionsaufruf falsch geschrieben, reagiert das Highlighting nicht. Sie sehen einen Tippfehler sofort. Das erspart viel Arbeit bei der Fehlersuche. Über ein solches Highlighting für PHP verfügt z. B. Homesite (eine kostenlose Testversion gibt es bei Macromedia). Als kostenlose Software steht hier Weaverslave zur Verfügung, bei dessen Entwicklung der Schwerpunkt auf DHTML und PHP liegt.

Einen Überblick über die unterschiedlichen Editoren und Entwicklungsumgebungen für alle Betriebssysteme bietet die Webseite www.php-editors.com.

PHP-Entwicklungsumgebungen

Es gibt inzwischen für PHP komplette Entwicklungsumgebungen mit Debugger und integriertem Webserver. Diese Tools sind gut für die Entwicklung professioneller Anwendungen. Allerdings sind sie für den Einsteiger oft zu komplex. Wenn Sie noch nie mit einer solchen Entwicklungsumgebung gearbeitet haben, brauchen Sie Zeit, um mit einem so mächtigen Tool umgehen zu lernen und von dessen Vorteilen profitieren zu können. Deshalb rate ich Ihnen jetzt noch davon ab. Benutzen Sie einen normalen Editor und lernen Sie PHP erst einmal von der Pike auf mit Bordmitteln. Später können Sie dann über den Einsatz einer professionellen und oft auch kostenpflichtigen Entwicklungsumgebung nachdenken.

Testen der Installation und Konfiguration

Testen Sie nun Ihre Installation und schreiben Sie das erste PHP-Skript. Öffnen Sie in Ihrem Editor eine neue, komplett leere Datei. Kopieren Sie folgendes Testskript in diese Datei.

<?php
echo phpinfo();
?>

Die Datei enthält nur diese 3 Zeilen. Speichern Sie die Datei unter dem Namen info.php im Verzeichnis des Apache bzw. in C:/xampp/htdocs. Sollten Sie ein anderes Verzeichnis für die Installation benutzt haben, suchen Sie dort nach dem Verzeichnis htdocs, um die PHP-Dateien dort zu speichern.

PHP-Dateien dürfen bei XAMPP die Endungen *.php, *.php3, *.php4 und *.phtml haben.

Öffnen Sie nun einen Browser Ihrer Wahl und geben in die Adresszeile http://localhost/info.php ein.

Öffnen Sie die Datei nicht direkt vom Browser aus, auch nicht mit Doppelklick aus dem Dateimanager Windows Explorer. Wenn die Skriptdateien nicht über den Webserver aufgerufen werden, wird PHP nicht ausgeführt. Sie müssen auf jeden Fall über localhost aufgerufen werden

Sie sollten eine sehr lange Ausgabe sehen, die in etwa wie folgt beginnt:

Ausgabe des Testskripts im Browser

Dieses Skript und die generierte Ausgabe zeigt die in PHP vordefinierten Variablen, die aktivierten Module auf dem Webserver und die Einstellungen der php.ini im Verzeichnis unter c:\windows. Sie können die default-Einstellungen in der php.ini zunächst beibehalten.

Dieses Skript ist sehr nützlich, wenn Sie etwas über die PHP-Version und die Konfiguration auf einem anderen Server erfahren wollen. Laden Sie diese Datei mit einem FTP-Programm auf den Server und rufen sie dort über den Browser mit http://www.domain.de/info.php auf. Probieren Sie es bei akademie.de aus.

Sie sehen dann zum Beispiel im Abschnitt PHP Variables unter _SERVER["DOCUMENT_ROOT"] den Dateipfad des Dokumentenpfades, den Sie zum Beispiel dann brauchen, wenn Sie über ein Formular Dateien auf den Server laden wollen. Darauf werden wir in dem Kurs PHP lernen (3): Interaktive Webseiten zurück kommen.

Weiße Seite?

Es kann sein, dass Sie beim Aufrufen dieses Skriptes bei einem Provider keine Ausgabe und auch keine Fehlermeldung sehen, sondern einfach nur eine weiße Seite. Manche Provider unterdrücken die phpinfo-Funktion aus Sicherheitsgründen. Schließlich verrät die Ausgabe einiges über die Konfiguration des Webservers und macht ihn damit potentiell angreifbar. In diesem Fall müssen Sie die benötigten Informationen über den Webserver gezielt aus dem superglobalen _SERVER abfragen, dazu später mehr.

Projektverzeichnisse anlegen

HTML-Dateien und später auch die PHP-Dateien müssen bei der Standardeinstellung des Webservers im Verzeichnis htdocs unter Apache liegen, damit sie über den Webserver aufgerufen werden können. Wenn Sie XAMPP benutzen, finden Sie dieses Verzeichnis zum Beispiel unter C:/xampp/htdocs. Bei einer manuellen Installation vom Apache wäre das zum Beispiel C:/Programme/Apache Group/Apache/htdocs.

Es bietet sich an, für jedes Projekt ein eigenes Verzeichnis unterhalb von htdocs anzulegen. Für diesen Workshop könnten Sie also ein Verzeichnis mit Namen Workshop anlegen. Speichern Sie die Datei info.php also im Verzeichnis /htdocs/Workshop/ (z. B. C:/xampp/htdocs/Workshop oder C:/Programme/Apache Group/Apache/htdocs/Workshop).

Im Browser wird diese Datei über die Adresse http://localhost/Workshop/info.php oder http://127.0.0.1/Workshop/info.php aufgerufen.

PHP-Versionen

Bei Providern ist noch die Version PHP 4 verbreitet. PHP 5 kommt allmählich zum produktiven Einsatz. Häufig laufen beide Versionen parallel. Erkundigen Sie sich vor jedem Projektbeginn danach, welche Version von PHP auf dem Zielserver unterstützt wird, und wie die Dateierweiterung dafür heißen muss. Am besten passen Sie dann Ihr lokales Testsystem für die Entwicklung an die Servereinstellungen an.

Grundsätzlich werden die Dateiendungen, mit denen Dateien an den PHP-Parser geschickt werden, in der httpd.conf im Verzeichnis conf des Apache definiert. Bei einem Provider im Netz wären also auch andere Dateiendungen wie zum Beispiel *.php5 denkbar. Erkundigen Sie sich bei Ihrem Provider nach der notwendigen Dateiendung.

Verwendet der Provider eine Dateiendung, die nicht in Ihrem lokalen System enthalten ist, ergänzen Sie diese einfach in Ihrer lokalen Installation. Dazu öffnen Sie die Konfigurationsdatei httpd.conf des Apache in einem beliebigen ASCII-Editor. Diese Datei wird beim Start des Webservers ausgeführt. Sie befindet sich im Verzeichnis conf im Programmverzeichnis des Apache.

Die Raute # am Zeilenanfang ist übrigens ein Kommentarzeichen. Zeilen, die mit einer Raute # beginnen, werden beim Start des Webservers nicht ausgeführt.

Suchen Sie nun nach der Zeile, die die Dateiendungen dem MIME-Type des PHP-Interpreters zuweist. Die Zeile sieht in etwa so aus:

AddType application/x-httpd-php .php

Das bedeutet, Sie weisen den Apache an, dass Dateien mit den Endungen *.php an das PHP-Modul des Apache geschickt werden sollen. Sie können nun die Zeile, die Sie vorgefunden haben einfach so oft kopieren, wie sie Dateiendungen verknüpfen wollen:

AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php5

Sie können aber auch genauso gut mehrere Zuweisungen in einer Zeile zuweisen:

AddType application/x-httpd-php .php .php4 .php5

Speichern Sie die Änderungen der httpd.conf und starten Sie den Apache neu. Dieser Restart ist unbedingt erforderlich, damit die neuen Zeilen der Konfigurationsdatei zeilenweise ausgeführt werden und in das Modul geladen werden.

CGI oder Modul

Dieser Abschnitt ist eine kleine Ergänzung für diejenigen, die etwas mehr über die Einbindung von PHP in den Apache wissen wollen. Wenn Sie ganz neu einsteigen, überspringen Sie diesen Abschnitt ruhig und behalten für später einmal im Hinterkopf, dass es unterschiedliche Konfigurationen für PHP gibt.

PHP kann nur mithilfe eines Webservers ausgeführt werden. Der PHP-Parser kann über das Common Gateway Interface (CGI) oder als Modul im Webserver implementiert werden. Wenn Sie nicht wissen, was das Common Gateway Interface ist, finden Sie bei SelfHTML eine ausführliche Erläuterung.

Was ist der Unterschied? Wird PHP als Modul in den Webserver eingebunden, wird der Parser gemeinsam mit dem Webserver gestartet und steht somit jederzeit für eine Anfrage bereit. Wenn jedoch der Parser über die Schnittstelle CGI eingebunden wird, muss er für jede einzelne Anfrage gestartet und anschließend beendet werden. Die Einbindung als Modul ist schneller, performanter.

Sie sollten wissen, dass sich manche Umgebungsvariablen von PHP in den unterschiedlichen Konfigurationen unterschiedlich verhalten. Einige Funktionen verhalten sich über CGI anders als im Modul. Bei der Entwicklung eines Projektes sollten Sie also darauf achten, ob PHP beim Provider als Modul oder über CGI eingebunden ist. Es kann sinnvoll sein, Ihr Testsystem dann an die Einstellung des Providers anzupassen.

Prüfen Sie zunächst, wie das System konfiguriert ist. Dazu rufen Sie wie oben beschrieben die Testdatei info.php im Browser auf. In der Ausgabe steht in der ersten Tabelle etwa in Zeile 3 entweder Server API Apache oder etwas mit CGI.

Wenn Sie die vorhandene Konfiguration ändern wollen, öffnen Sie die Datei httpd.conf in einem beliebigen ASCII-Editor. Sie finden die Konfigurationsdatei im Verzeichnis conf im Programmverzeichnis des Apache. Suchen Sie die relevanten Zeilen:

# Für CGI: 
ScriptAlias /php/ "/apache/php/"   
# hier muss ggf. der Pfad angepasst werden.
Action application/x-httpd-php /php/php.exe 

# Für Modul: 
LoadModule php4_module c:/php/php4apache(2).dll
AddType application/x-httpd-php .php

Ergänzen Sie die notwendigen Zeilen für die gewünschte Konfiguration. Passen Sie dabei die Pfade an Ihr System an. Die nicht mehr benötigten Zeilen können Sie mit einer Raute als Kommentarzeichen am Anfang der Zeile auskommentieren. Diese auskommentierten Zeilen werden beim Start des Webservers nicht mehr ausgeführt.

Speichern Sie die Änderungen der httpd.conf und starten Sie den Apache neu. Dieser Restart ist unbedingt erforderlich, damit die neuen Zeilen der Konfigurationsdatei zeilenweise ausgeführt werden und gegebenenfalls das Modul geladen wird. Überprüfen Sie Ihre Änderungen mit dem phpinfo-Skript.

Mitglied werden, Vorteile nutzen!

  • Sie können alles lesen und herunterladen: Beiträge, PDF-Dateien und Zusatzdateien (Checklisten, Vorlagen, Musterbriefe, Excel-Rechner u.v.a.m.)
  • Unsere Autoren beantworten Ihre Fragen

Downloads zu diesem Beitrag

Newsletter abonnieren