Einführende Bemerkungen zur Programmiersprache PHP
und zu deren Installation und Benutzung
PHP als serverseitige Programmiersprache für das Internet :
Was bedeutet das?
Steigen wir mit bekannten Tatsachen ein.
Wenn auf einem lokalen Rechner (wo denn auch sonst) ein Delphi- oder Java-Programm gestartet wird, öffnet sich ein Fenster und der Nutzer gibt Daten ein oder veranlasst Aktionen, die der Programmierer für das Programm vorgesehen hat. Schließt der Nutzer das Programmfenster, ist das Programm beendet und alle Daten sind vergessen, sofern sie nicht während der Laufzeit des Programms auf einem Datenträger gespeichert wurden.
Das heißt, dass alle Daten solange im Speicher präsent sind, wie das Programm läuft.
Bei bei der Programmierung mit PHP ist das völlig anders.
Das was auf dem Bildschirm erscheint und was man gewohnt ist, auch als Programmierer, ist in Wirklichkeit gar nicht so!
Es besteht nämlich ein Unterschied zwischen dem, was man als Programm wahr zu nehmen glaubt und sowohl der Laufzeit des Programms als auch der Maschine, auf der das Programm läuft.
Zur Erklärung dessen kommen die beiden Begriffe Server und Client ins Spiel.
Grob gesprochen ist ein Server ein Rechner, der etwas bereitstellt. Ein Client jedoch ist ein Rechner, der etwas haben möchte.
Wobei das nicht ganz in Ordnung ist, denn ein Server ist ein Programm, das permanent darauf wartet, dass eine Anfrage eintrifft, die einen Dienst betrifft, der auf diesem Rechner läuft. Ein Client ist demzufolge ein Programm, das eine Anfrage an einen Server stellt.
Oft läuft der Client auf einem anderen Rechner als der Server. Jedoch muss das nicht so sein. Diese Vorstellung hilft aber enorm beim Verständnis für die PHP-Programmierung.
Wie geht das nun im Internet?
Ein Nutzer gibt in seinen Browser eine Internetadresse ein. Damit wird von diesem Rechner (Client) die Startseite der gewünschten Internetpräsentation (i.d.R. INDEX.HTML) von einem Rechner im Internet (Server) angefordert.
Der Server stellt die Seite bereit und verschickt sie an den Client. Dessen Browser zeigt die Seite dann an und das Spiel beginnt von Neuem, wenn der Nutzer eine neue Seite anfordert. Auf diese Weise können viele Nutzer vorgefertigte Seiten von einem Server abrufen. Diese Seiten sehen immer gleich aus und haben identische Inhalte. Man spricht in diesem Falle von statischen Seiten.
Bald jedoch entstand der Wunsch, die Seiten auf Anforderung des Nutzers mit unterschiedlichem Inhalt zu generieren.
Beispiel: Jeder "war" bestimmt schon mal in einem Webshop.
Will ich mir dort ein Buch über PHP aussuchen, möchte ich auch nur die Bücher über PHP angeboten bekommen und nicht etwa auch Liebesromane oder gar Fernseher oder Sportschuhe. Dazu braucht es ein Programm, das einen Datenbestand nach dem gewünschten Kriterium durchsucht und die Ausgabe dieser realisiert.
Prinzipiell gibt es dazu zwei Möglichkeiten. Entweder läuft das Programm auf dem Client und durchsucht die Daten auf dem Server oder diese Arbeit wird von einem Programm, das auf dem Server läuft verrichtet. Jeder Betreiber eines Servers wird aus Sicherheitsgründen die letztere Variante bevorzugen.
Einschub:
Es gibt jedoch auch Situationen, in denen es vernünftig ist, dass der Server dem Client ein Programm mitschickt. Solche Programme werden z.B. mit Java oder Java-Script geschrieben. JavaScript ist eine Sprache, deren Programme auf dem Client, also vom Browser des Webseitenbetrachters, ausgeführt werden. Problematisch daran ist, dass kranke Hirne diese Möglichkeit zu abartigen Zwecken ausnutzen. Deshalb schalten die ganz extrem sicherheitsbewussten Nutzer JavaScript im Browser ab. Dann laufen die JavaScript-Programme natürlich nicht mehr, was die Funktionalität der entsprechenden Seiten sicher beeinträchtigt.
Damit kommen wir zur serverseitigen Programmierung zum Beispiel mit PHP zurück.
Der Ablauf zum Starten eines Programms verläuft analog zum Aufruf einer normalen HTML-Seite: Der Browser auf einem Client-Rechner wird geöffnet und die gewünschte Internetadresse eingeben und abgeentert. Der erste Unterschied ist erst der, dass eine Seite mit der Endung PHP statt HTML aufgerufen wird.
Die Anforderung kommt beim (Web-) Server an und der lädt jetzt die entsprechende Seite in seinen Speicher. Nun, und das ist der Unterschied, wird das in dieser Seite gespeicherte Script (Programm) auf dem Server vollständig abgearbeitet. Im Ergebnis der vollständigen Abarbeitung des Scripts wird eine HTML-Seite generiert, die an den Client verschickt wird. Das bedeutet, dass das Programm auf dem Server beendet ist, wenn der Browser des Nutzers (Client) diese gesendete HTML-Seite darstellt. Der nächste Seitenaufruf startet dann das nächste Script usw.
Voraussetzungen bezüglich der Software:
Will man nun PHP programmieren (lernen), müsste man eigentlich einen zweiten Rechner haben, auf dem man einen Webserver, der PHP "kann", und evtl. eine Datenbank installiert. Auf diesem Rechner gibt es dann ein Verzeichnis (nennen wir es "Publikationsordner"), in dem dann die PHP-Scripts hinterlegt werden.
Vom vermeintlich normalen Rechner aus kann man dann die Scripts auf die oben beschriebene Art und Weise testen.
Wenn das aber nur so ginge, wäre PHP für den Unterricht oder für Schüler richtig Mist, denn wer hat schon einen zweiten Rechner herumzustehen.
Es geht aber auch, dass ein Server- und ein Clientprogramm auf demselben Rechner laufen. Das hat sogar den Vorteil, dass die Daten schneller fließen.
Wie oben beschrieben, benötigt man als erstes ein Webserverprogramm. Am weitesten verbreitet ist der Server Apache. Ist eigentlich für LINUX geschrieben worden, aber auch schon lange nach WINDOWS portiert.
Dazu ist dann die Programmiersprache zu installieren und in den Webserver einzubinden, also das gewünschte PHP.
Eingebürgert hat es sich, gleich noch eine Datenbank in das System zu integrieren. Sehr häufig wird hier das freie Datenbanksystem MySQL (siehe JGS 11) verwendet.
Diese Aufgaben kann man natürlich selbst von Hand erledigen, aber gerade das Einstellen und Absichern bereitet Anfängern Probleme, so dass in der Konsequenz das System eventuell nicht läuft. Außerdem will man ja programmieren lernen, oder?
Lösung dieses Problems sind im Internet vorhandene Distributionen, die die Software und voreingestellte Konfigurationsdateien enthalten. In der Regel läuft diese Serverumgebung dann nach der Installation problemlos.
Empfehlenswert ist die Distribution XAMPP vom "Apachefriends". Unter diesem Link http://www.apachefriends.org/de/xampp.html findet man immer eine sehr aktuelle Zusammenstellung der gewünschten Programme.
Zum Download empfehle ich die Installer-Version, da hier alles schön automatisch und wie unter Windows gewohnt abläuft. Auch das Deinstallieren klappt wunderbar, was nach meinen Beobachtungen nötig ist, falls man auf eine neue Version umstellen will.
Installation und Einrichtung:
Zuerst installiert man XAMPP mit der Datei xampp-win32-1.7.3.exe.
Seit sich Microsoft mit VISTA an einer Rechteverwaltung versucht hat, kann XAMPP nicht mehr problemlos nach c:\programme installiert werden.
Man sollte, wenn nichts dagegen spricht, bzgl. des Installationsverzeichnisses dem Vorschlag des Installers folgen und XAMPP nach c:\xampp installieren.
Danach ist der Server bereit und lauffähigund man darf den Server zur Probe einmal starten.
Ab Version 1.4.12 gibt es ein XAMPP-Controlpaneel, mit dessen Hilfe der Apache-Server, MySQL ... separat an- und abschaltet werden können.
Eigentlich ist man mit der Installation nun fertig. PHP-Code kann in jedem Textverarbeitungsprogramm geschrieben werden, sofern es die entstehenden Dateien im Format "nur Text" und einem Dateinamen der Form name.php abspeichert.
Vielleicht ist es jedoch besser für die Eingabe von PHP-Programmen, einen darauf spezialisierten Editor zu benutzen. Dazu weiter unten.
Ansprechen des Webservers:
Einen Webserver erreicht man über seine IP-Adresse.
Das ist eine Zahlenkombination der Form: xxx.xxx.xxx.xxx z.B. 233.15.144.7
Soll der Webserver auf dem eigenen Rechner angesprochen werden, muss die IP des lokalen Rechners: 127.0.0.1 eingegeben werden. (Also gibt es diese Nummer im Internet nicht.)
Weil sich soetwas keiner merken kann, hat man URL's erfunden, wie Brenner-Gymnasium.de. So genannte DNS-Server übernehmen die Zuordnung von URL und IP-Nummer.
Die URL des lokalen Rechners ist: http: //localhost
D.h. unser Apache wird im Browser über die Eingabe von localhost angesprochen. Dabei wird die Datei index.htm oder index.php im Ordner Publikationsordner: c:\xampp\htdocs aufgerufen.
Dieser Ordner ist, wie oben schon erklärt, der, der die PHP-Projekte enthält.
Wie viele andere Einstellungen, kann dieser Publikationsordner auch geändert werden. Dies geschieht in der Datei httpd.conf im Ordner c:\xampp\apache\conf. Dort sucht man den Eintrag:
DocumentRoot "c:/xampp/htdocs"
und ändert ihn ab in:
DocumentRoot "gewünschtesLaufwerk:/gewünschter Ordner"
23 Zeilen darunter findet man folgenden Einrag:
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "c:/xampp/htdocs">
Hier ist noch einmal der Ordner von DocumentRoot einzutragen (s.o.).
Bitte beachtet, dass die Trennung zwischen den Ordnern web-üblich mit SLASH vorzunehmen ist!
Das eben beschriebene Vorgehen eignet sich gut für Leute, die auf ihrem PC Programmdateien und eigene Daten konsequent in unterschiedlichen Laufwerken (Partitionen) abspeichern. Bei diesem Vorgehen verliert man bei einer Neuinstallation von WINDOWS seine Daten in der Regel nicht, es sei denn der Grund der Neuinstallation des Computers war eine völlig defekte Festplatte. Außerdem hat man mehr Ordnung auf seinem Computer. Also sei dazu dringend geraten.
Auf ein Problem sei in diesem Zusammenhang allerdings hingewiesen: An die Dokumente, die nach der Installation von XAMPP im Browser angezeigt wurden, kommt man, ohne sie in den neuen Publikationsordner zu kopieren, nicht mehr so einfach ran!
Programmierumgebungen:
Als Editor für PHP eignet sich das Programm Phase 5 eigentlich schon ganz gut und wer darauf nicht verzichten will, kann es gern weiter nutzen. Allerdings müssen in Phase 5 einige Einstellungen vorgenommen werden:
Falls man, wie oben beschrieben, den www-Ordner zum Publikationsordner gemacht hat, sollte man für diesen ein neues Projekt erstellen.
Nun werden mit einem Rechtsklick auf den neuen Projektnamen einige Einstellungen vorgenommen. In der Karteikarte Verzeichnisse trägt man wenigstens den Publikationsordner ein.
In der Karteikarte Localhost ist als Serverpfad http: //127.0.0.1/ einzutragen.
Desweiteren ist Lokalen Webserver für interne Vorschau benutzen anzuhaken. Schon läuft alles wie gewohnt.
Besser für PHP eignet sich m.E.: Weaverslave!
Weaverslave ist zwar genau genommen auch keine echte IDE, funktioniert etwas anders als Phase 5, ist jedoch sowohl für HTML-Entwickler, als auch für die, die unbedingt PHP schreiben wollen, sehr gut zu gebrauchen.
Interessant sind solche Bestandteile wie TagInspector, TagListe, TagButtons, HTML- und PHP-Helfer und ein Verzeichnis für die in PHP zur Verfügung stehenden Funktionen.
Und der Clou: das Teil kann sogar richtig gut Deutsch.
Weaverslave gibt es unter http://www.weaverslave.ws/downloads.21.html zum Download. Es wird eine ZIP- und eine Installer-Version (wsbeta.exe) angeboten. Ich habe die letztere gewählt. Diese wird gestartet und das Programm installiert sich dann.
Danach habe ich mir eine Verknüpfung auf dem Desktop angelegt (Der kleine Weberknecht sieht doch so niedlich aus).
Nun folgen noch fix ein paar kleine Einstellungen: Nach der Installation sollte die Sprache umgestellt werden:
Programm starten->Options->Languages->Deutsch->Programm neu starten
Als letztes sollte die interne Ansicht dazu überredet werden, mit dem Apache zusammenzuarbeiten:
- Optionen->Allgemein öffnen: das Fenster Editoreinstellungen erscheint
- Karteikarte Browser aktivieren
- oben links unter Interne Vorschau: nutze Internetexplorer anhaken
- in lokales Verzeichnis zu URL auf Hinzufügen klicken (es wird erst einmal irgendetwas eingetragen)
- Verändern dieser Einträge in:
Lokales Verzeichnis ist: der eingestellte DocumentRoot-Ordner
URL lautet: http: //localhost/
IP ist: 127.0.0.1
Serververzeichnis(I.d.R.): c:\xampp\apache
- Ok klicken
Jetzt müsste die interne Vorschau laufen.
Auf eine kleine Ungewöhnlichkeit sei noch hingewiesen: Der Webserver "cachet" die zuletzt dargestellte Seite. Wenn man z.B. in Weaverslave zum zweiten mal die interne Vorschau nutzt (Klick auf das Internetexplorersymbol) erscheint mitunter die erste Ansicht unverändert noch einmal. Unter dem Anzeigefenster findet man das Symbol Aktualisieren (oder Taste F5), welches dann die Seite aktualisiert.
Viel Spass und Erfolg!
aktualisiert im Juli 2008





