Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Über die Autoren
Über dieses Buch
Linux vs. BSD
1 Der Kernel
2 Die Grundlagen aus Anwendersicht
3 Die Shell
4 Reguläre Ausdrücke
5 Tools zur Dateibearbeitung
6 Die Editoren
7 Shellskriptprogrammierung
8 Benutzerverwaltung
9 Grundlegende Verwaltungsaufgaben
10 Netzwerk-Grundlagen
11 Anwendersoftware für das Netzwerk
12 Netzwerkdienste
13 Mailserver unter Linux
14 LAMP
15 DNS-Server
16 Secure Shell
17 Die grafische Oberfläche
18 Window-Manager und Desktops
19 X11-Programme
20 Multimedia und Spiele
21 Softwareentwicklung
22 Crashkurs in C und Perl
23 Sicherheit
24 Prozesse und IPC
25 Bootstrap und Shutdown
26 Dateisysteme
27 Virtualisierung und Emulatoren
A Die Installation
B Lösungen zu den einzelnen Aufgaben
C Kommandoreferenz
D X11-InputDevices
E MBR
F Die Buch-DVDs
G Glossar
H Literatur

Download:
- ZIP, ca. 6,3 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Plötner, Steffen Wendzel
Das distributionsunabhängige Handbuch
Buch: Linux

Linux
2., aktualisierte und erweiterte Auflage
1119 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1090-4
gp 14 LAMP
  gp 14.1 Apache
    gp 14.1.1 Den Apache verwalten
  gp 14.2 MySQL
    gp 14.2.1 Administration
    gp 14.2.2 SQL
    gp 14.2.3 APIs
  gp 14.3 PHP
    gp 14.3.1 (X)HTML
    gp 14.3.2 PHP-Support im Apache aktivieren
    gp 14.3.3 PHP lernen
    gp 14.3.4 PHP und MySQL
  gp 14.4 Zusammenfassung
  gp 14.5 Aufgaben


Galileo Computing

14.3 PHP  downtop

Auch wenn viele »Informatiker« bei der Frage nach ihren »Programmierkenntnissen« die Sprache HTML angeben, so hat die Hypertext Markup Language rein gar nichts mit Programmierung an sich zu tun. (X)HTML ist eine reine Seitenbeschreibungssprache.

Eine Seitenbeschreibungssprache wie HTML beschreibt nur das Aussehen und die Struktur, aber nicht das Verhalten von Dokumenten.

Mit anderen Worten: Man kann mit HTML zwar sagen, dass ein fettgedruckter Text neben einem Bild mit grüner Schrift auf blauem Untergrund erscheinen soll, jedoch muss man diesen Text bereits bei der Erstellung des Dokuments per Hand statisch eintragen.

Dynamischer Inhalt

Möchte man diesen Text dynamisch erstellen und beispielsweise die beim Aufruf jeweils aktuelle Uhrzeit anzeigen, dann kommen Skriptsprachen wie PHP ins Spiel. Dazu muss der Webserver selbstverständlich entsprechend konfiguriert sein, schließlich soll das nun dynamische Dokument zuerst durch einen Parser gejagt werden, der die Skriptbefehle auswertet und am Ende pures (X)HTML ausspuckt. Diese Ausgabe wird bei jedem Aufruf neu erzeugt, bevor sie schließlich an den Client geschickt wird.


Galileo Computing

14.3.1 (X)HTML  downtop

Bevor wir uns also den eigentlich Skriptsprachen widmen, möchten wir ein paar Worte über (X)HTML verlieren. An erster Stelle soll dabei die Frage stehen, was das X bei XHTML bedeutet und wo der Unterschied zu HTML liegt.

Die Geschichte von HTML

Dazu müssen wir uns kurz die Geschichte von HTML ansehen. Die Sprache wurde 1989 von Tim Berners-Lee und Robert Caillau entwickelt, um mit dem ebenfalls entwickelten HTTP-Protokoll ein verteiltes Informationssystem für ihre Arbeit am CERN Kernforschungsinstitut zu erleichtern. Damals wurde HTML in erster Linie zur Strukturierung von Textdaten gebraucht, Elemente für die Visualisierung wurden erst später hinzugefügt.

Diese Erweiterungen führten zu bekannten Problemen: Da die Spezifikationen zur Darstellung anfangs recht ungenau beziehungsweise sogar unvollständig waren, gab es Spielräume bei der Interpretation und der Darstellung von HTML-Seiten.

Die daraus resultierenden Unterschiede von Webseiten im Internet Explorer oder im Netscape Navigator führten so manchen Webdesigner bis an den Rand des Suizids.

XML

Später entwickelte man auf Basis des erfolgreichen HTML die Strukturierungssprache XML. Diese Sprache wurde regelrecht hochgejubelt, schließlich könne man mit ihr »alles machen«! Und das stimmt in gewissem Sinne auch:

XML definiert nur, wie ein Dokument strukturiert sein muss. Es wurden ganze Bücher über dieses Thema geschrieben, jedoch lässt sich das Wichtigste zu XML in wenigen Sätzen zusammenfassen:

Mit XML strukturiert man seine Texte in Tags und Attribute. Tags können Attribute enthalten und weitere Tags umschließen. Dazu muss jedem Start-Tag »<Tag>« ein schließendes Tag »</Tag>« folgen.

XHTML ist nun nichts anderes als XML-konformes HTML. Da XML selbst keine Aussage dazu macht, welche Tags beziehungsweise Attribute erlaubt sind, definiert man sogenannte Schemas. Und im passenden XHTML-Schema sind eben die für XHTML vorgesehenen Werte definiert.

HTML »programmieren«

Referenzen

Wie »programmiert« man nun eigentlich HTML? Für einen Einführungskurs eignet sich am besten die Online-Referenz http://de.selfhtml.org sowie natürlich auch die Referenz des World Wide Web Consortiums http://www.w3c.org.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
  Transitional//EN" 
  "http://www.w3.org/TR/html4/loose.dtd» 
<html> 
  <head> 
    <title>Text des Titels</title> 
  </head> 
  <body> 
    <h2>Überschrift</h2> 
    <p>Text im Absatz</p> 
  </body> 
</html>

Listing 14.18    Beispiel für eine HTML-Datei

In diesem kleinen Beispiel ist zu erkennen, dass eine Webseite mit der Überschrift »Überschrift« und einem Absatz mit dem Text »Text im Absatz« erstellt wurde. Die Tags »h2« und »p« sind dabei intuitiv nach der Strukturierung benannt: heading bedeutet »Überschrift«, und paragraph ist das englische Wort für »Absatz«.

Einige Designrichtlinien

Heutzutage rückt mit XML und dem künftigen Standard XHTML 2.0 die eigentliche Aufgabe von HTML wieder mehr in den Vordergrund: das Strukturieren des Inhalts. Die Visualisierung sollte dagegen über CSS-Stylesheets vorgenommen werden.

Tabellen vs. divs

Für entsprechende Anpassungen eignen sich besonders die »<div>«-Tags, da diese kein festgeschriebenes Erscheinungsbild besitzen und so frei konfiguriert werden sollen. Vor allem sollte man von einer Layout-Gestaltung mittels Tabellen Abstand nehmen und auf eben diese divs zurückgreifen. Mit einer solchen Umsetzung des Layouts hat man in der Regel auch in exotischen Browsern kaum Darstellungsprobleme und trägt sogar zur Barrierefreiheit des Internets bei.

Einsteiger neigen des Weiteren auch dazu, auf einer »Homepage« alles unterbringen zu wollen, was sie können oder im Web finden. Bunte, blinkende, mit GIF-Grafiken überladene Webseiten sind die Folge. Weniger ist da meistens mehr.

Und Sie wollen doch nicht, dass Ihre Webseite aussieht, als wäre sie von einem unter Drogen gesetzten Zehnjährigen entworfen worden.

Jedenfalls gibt es im Netz viele gute Seiten – allen voran natürlich die vom W3C (www.w3c.org) --, auf denen man viel über Webdesign und mögliche Fehler lernen kann.


Galileo Computing

14.3.2 PHP-Support im Apache aktivieren  downtop

Modul laden

Bevor wir nun die ersten dynamischen Webseiten programmieren wollen, müssen wir den PHP-Support im Apache aktivieren. Dazu wird ein spezielles Modul benötigt, das in der Konfigurationsdatei auch geladen werden will:

# Modul laden 
LoadModule php4_module /usr/lib/apache/1.3/libphp4.so 
 
# Den Dateiendungen ihre MIME-Typen zuweisen 
AddType application/x-httpd-php .php4 
AddType application/x-httpd-php .php 
AddType application/x-httpd-php-source .phps 
 
# Standardmäßig auch index.php3 bzw. index.php laden 
DirectoryIndex index.php3 index.php

Listing 14.19    PHP-Support in Apache 1.3.x

$ cat /etc/apache2/mods-enabled/php5.conf 
<IfModule mod_php5.c> 
  AddType application/x-httpd-php .php .phtml .php3 
  AddType application/x-httpd-php-source .phps 
</IfModule> 
$ cat /etc/apache2/mods-enabled/php5.load 
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so 
$ grep php /etc/apache2/mods-enabled/dir.conf 
DirectoryIndex index.html index.php index.xhtm

Listing 14.20    PHP-Support in Apache 2.x

Ebenfalls müssen die Dateiendungen den entsprechenden MIME-Typen zugeordnet sowie die Indexdateien definiert werden.

Die meisten Distributionen bieten jedoch spezielle Pakete an, die den PHP-Support automatisch zu Ihrem Webbrowser hinzufügen. So reicht beispielsweise unter Debian folgender Befehl aus:

# aptitude install php4 apache 
 
oder: 
 
# aptitude install php5 apache2

Listing 14.21    PHP-Apache unter Debian

Gentoo

Mit diesem Aufruf werden die Pakete »php4« und »apache« installiert und so konfiguriert, dass beides gleich in Kombination genutzt werden kann. Unter Gentoo sehen die Aufrufe zur Installation etwas anders aus:

# emerge 
<apache-2 
# USE="-*" emerge php mod_php 
# ebuild /var/db/pkg/dev-php/mod_php-4/mod_php-4.ebuild 
  config 
# nano /etc/conf.d/apache 
  "-D PHP4" zur Variable APACHE_OPTS hinzufügen 
# rc-update add apache default

Listing 14.22    PHP-Apache unter Gentoo

Anschließend sollte der Apache noch mit /etc/init.d/apache start gestartet werden. Bei anderen Distributionen sehen die Aufrufe zum Installieren der Software natürlich entsprechend anders aus.


Galileo Computing

14.3.3 PHP lernen  downtop

Natürlich können wir in diesem Buch keine komplette Einführung in PHP geben; Galileo hat eigene Bücher über dieses Thema mit einem ähnlichen Umfang wie unser Linux-Buch. Einige zum Verständnis notwendige Grundlagen können wir hier jedoch bieten.

PHP ist eine in HTML eingebettete Skriptsprache mit Ähnlichkeiten zu C, Java und Perl. Mit PHP können dynamisch generierte Webseiten schnell entwickelt werden.

Wie kann man nun PHP nutzen? Betrachten wir dazu ein kleines Beispiel, das zum Ausprobieren auf unserem PHP-fähigen Apache einfach nur als .php-Datei unter dem DocumentRoot gespeichert werden muss.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 
  Transitional//EN" 
  "http://www.w3.org/TR/html4/loose.dtd» 
<html> 
 <head> 
  <title>PHP-Testseite</title> 
 </head> 
 <body> 
   <?php echo '<p>PHP-Text</p>'; ?> 
</body> 
</html>

Listing 14.23    Ein kleines Beispiel für PHP

Man kann gut erkennen, dass PHP wirklich in HTML eingebettet ist. Der echo-Befehl zur Ausgabe einer Zeichenkette – in unserem Fall ein <p>-Tag samt Text – muss dazu in eine speziellen Umgebung platziert werden. Bei der Anforderung der Webseite durch einen Webbrowser wird also der PHP-Parser den Text zwischen »<?php« und »?>« nehmen und als PHP-Code interpretieren. Anschließend wird er den HTML-Code generieren, der schließlich an den Browser geschickt wird.

Um nun etwas Dynamik in die Sache zu bringen, wollen wir kurz die Auswertung des folgenden HTML-Formulars betrachten:

… 
<form action="auswertung.php" method="post» 
 <p>Name: <input type="text" name="name»</p> 
 <p>Alter: <input type="text" name="age" /></p> 
 <p><input type="submit" value="Abschicken" /></p> 
</form> 
…

Listing 14.24    Dynamik!

Formulare auswerten

Dieses Formular muss nicht in einer PHP-Datei stehen. Wichtig ist nur, dass das Ziel dieses Aufrufs ein PHP-Skript ist. Diesem Skript – wie hier der Datei auswertung.php – werden die Eingaben des Benutzers geschickt, die wie folgt abgerufen werden könnten:

… 
<p> 
  Hallo <?php echo $_POST['name']; ?>! 
  Sie sind <?php echo $_POST['age']; ?> Jahre alt. 
</p> 
…

Listing 14.25    Die Eingaben auslesen

Auf die entsprechenden Formulardaten kann über das Array _POST zugegriffen werden. Variablen werden in PHP durch ein vorangestelltes Dollarzeichen identifiziert und können per echo natürlich auch ausgegeben werden.

Selbstverständlich gibt es bei PHP die Möglichkeit von Schleifen, Funktionen oder Abfragen von Bedingungen. Aber für einen ersten Eindruck sollen diese Ausführungen hier erst einmal genügen. Für weitere Informationen sollten Sie die offizielle Webseite www.php.net aufsuchen, auf der Tutorials, eine Referenz und viele praktische Beispiele zu finden sind.


Galileo Computing

14.3.4 PHP und MySQL  toptop

Natürlich ist PHP auch der Punkt, an dem es an die Nutzung der Datenbank gehen kann. PHP bietet dabei sogar verschiedene APIs zum Zugriff auf eine Datenbank an. Ausführliche Dokumentationen und Hilfen hierzu gibt es wie immer auf php.net.

Wir wollen uns stattdessen kurz einen Anwendungsfall für das Zusammenspiel von PHP und MySQL ansehen:

phpmyadmin, ein Tool zur Administration einer MySQL-Datenbank über das Web.

PHPMyAdmin

MySQL-Webadministration

Für viele Administrationen ist der phpmyadmin (phpmyadmin.net) das Tool der Wahl, wenn es um die Administration einer MySQL-Datenbank geht. Ein übersichtliches Webinterface und der große Funktionsumfang machen es möglich:

Abbildung 14.1    PHPMyAdmin

Aber vor allem ist dieses Projekt ein wunderschöner Anwendungsfall, da alle LAMP-Aspekte verbunden werden.

Auch wenn man selbst keinen eigenen Webserver mit MySQL und PHP betreibt, kann man mit dem PHPMyAdmin in Berührung kommen, da viele Webhoster die Software installieren, um ihren Kunden Zugriff auf ihre Datenbanken anzubieten.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Linux






 Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Einstieg in Linux






 Einstieg in Linux


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-
 Programmierung


Zum Katalog: Praxisbuch Netzwerk-Sicherheit






 Praxisbuch
 Netzwerk-Sicherheit


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de