PHP-Tutorial

Was ist PHP?

PHP ist die am meisten verwendete serverseitige Skriptsprache im Internet und wurde 1995 von Rasmus Lerdorf entwickelt.
Der Begriff stand damals noch für Personal Home Page Tools und war ursprünglich als Ersatz für eine Sammlung von Perl-Skripten gedacht, die Lerdorf zur Protokollierung der Zugriffe auf seinen Online-Lebenslauf geschrieben hatte.

PHP soll HTML-Inhalte von Webseiten dynamisch bereit stellen, auch wenn die Sprache mittlerweile sehr viel mehr kann.
PHP ist eine prozedurale Sprache und ermöglicht einfache Dynamisierung von Webinhalten ebenso, wie komplexe Bereitstellung von Datei-, XML- und Datenbankinhalten, Sicherheitsschutz samt Authentifizierung und Autorisierung, Versendung von Emails oder News oder z. B. SEO usw. usf.Wichtig dabei ist zu verstehen, dass PHP auf dem Server abläuft. Der Client bekommt davon überhaupt nichts mit, da er vom Server reines HTML als Antwort bekommt (siehe Grafik).

Vereinfachte PHP-Kommunikation

Der Client schickt einen Request über 'http://php.nobs-nobody.de/index.php' an den Server. Der Webserver ermittelt an Hand der Dateiendung '.php' das zugeordnete Verarbeitungsmodul (man sagt auch Handler) - hier das PHP-Modul - und übergibt ihm die angeforderte Datei 'index.php'.
Der PHP-Handler (oder auch Interpreter, da PHP auch Interpretersprache genannt wird) verarbeitet alle PHP-Anweisungen und generiert daraus HTML-Code. Dieser HTML-Code wird wieder an den Webserver übergeben, der diesen an den Client als Antwort sendet. Der Client wiederum stellt dann diesen HTML-Code im Browser dar.

Damit stellt PHP eine starkes Hilfsmittel bereit, um die Serverantwort an den Client nach den Wünschen des Webentwicklers zu formulieren.
So ziemlich alle Provider, bieten in ihren Paketen schon von Hause aus einen Apache Server mit PHP- und MySql-(Datenbank-)Unterstützung an. Wenn Ihr zu Hause aber erst mal testen bzw. lernen wollt, wie man mit PHP umgeht, benötigt Ihr die entsprechende Software: einen Webserver, die PHP-Software und einen MySql-(Datenbank-)Server.

Webserver

Bei Webservern kann man zumindest auf Windows-Systemen wählen, ob man den meist eingesetzten Webserver im Internet oder den windowseigenen verwenden möchte. Wer den Windows-IIS (internet information services) verwendet, muss die PHP-Unterstützung - unter der verwendung der PHP-Software weiter unten - als Modul konfigurieren. Auf der Technet-Seite gibt es eine Anleitung für die Konfiguration der PHP-Unterstützung als FastCGI-Modul: http://technet.microsoft.com/de-de/library/dd239230

Es existiert aber gerade für diejenigen, die noch nicht so versiert im Umgang mit solchen Plattformen sind und vielleicht den Apache verwenden wollen, ein Gesamtpaket, dass sowohl PHP-Unterstütung, als auch den Apache HTTP Server und einen MySql-Server beinhaltet: XAMPP für Windows
Dabei bekommt Ihr in dem Paket gleich noch eine MySql-Administrationssoftware (phpmyadmin), einen FTP-Server (FileZilla) und weitere Komponenten für die Unterstützung von z. B. Java (Apache Tomcat) und Perl mitgeliefert.Für Anfänger auf Linux empfehle ich das XAMPP für Linux, dass Ihr über ein Paketmanagementprogramm (aptitude, apt-get) oder hier herunterladen könnt.

Versierte Nutzer können den Apache HTTP Server auch hier herunterladen: Apache HTTP-Server

Konfiguration

Die Installation des XAMPP ist relativ einfach und steht unter anderem in den mitgelieferten README-Dateien. Die Beiträge dieser Seite für die Konfiguration von PHP, MySql und Apache auf Windows und Linux sind noch in Arbeit, weshalb Ihr leider noch auf die Manuals zurückgreifen müsst.

Wichtig für uns ist das Wurzelverzeichnis, in dem die Dateien der verschiedenen Webseiten liegen. Das sind je nach Betriebssystem, Plattform und Versionen:
PlattformStandardverzeichnisBeispiel
XAMPP auf Windows:<Laufwerk und Pfad zum XAMPP>\htdocs\c:\xampp\htdocs\
XAMPP auf Linux:<Pfad zum XAMPP>/htdocs//opt/xampp/htdocs/
Apache auf Linux:/var/www//var/www/
IIS auf Windows:%systemdrive%\Inetpub\wwwroot\c:\Inetpub\wwwroot\


Zur Vereinfachung nennen wir dieses Verzeichnis hier und auch auf allen weiteren Seiten dieses Blogs einfach 'Root' oder 'Root-Verzeichnis'.Im Root legen wir für jede neue Seite, die wir erstellen wollen - egal ob HTML, PHP o. a. - einen neuen Ordner an und können dann über http://localhost/<ordner>/ auf unsere neu erstellten Webseiten zugreifen.