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

Inhaltsverzeichnis
Vorwort
1 Einführung
2 Mathematische und technische Grundlagen
3 Hardware
4 Netzwerkgrundlagen
5 Betriebssystemgrundlagen
6 Windows
7 Linux
8 Mac OS X
9 Grundlagen der Programmierung
10 Konzepte der Programmierung
11 Software-Engineering
12 Datenbanken
13 Server für Webanwendungen
14 Weitere Internet-Serverdienste
15 XML
16 Weitere Datei- und Datenformate
17 Webseitenerstellung mit (X)HTML und CSS
18 Webserveranwendungen
19 JavaScript und Ajax
20 Computer- und Netzwerksicherheit
A Glossar
B Zweisprachige Wortliste
C Kommentiertes Literatur- und Linkverzeichnis
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
IT-Handbuch für Fachinformatiker von Sascha Kersken
Der Ausbildungsbegleiter
Buch: IT-Handbuch für Fachinformatiker

IT-Handbuch für Fachinformatiker
Rheinwerk Computing
1216 S., 6., aktualisierte und erweiterte Auflage, geb.
34,90 Euro, ISBN 978-3-8362-2234-1
Pfeil 13 Server für Webanwendungen
Pfeil 13.1 HTTP im Überblick
Pfeil 13.1.1 Ablauf der HTTP-Kommunikation
Pfeil 13.1.2 HTTP-Statuscodes
Pfeil 13.1.3 HTTP-Header
Pfeil 13.2 Der Webserver Apache
Pfeil 13.2.1 Apache im Überblick
Pfeil 13.2.2 Apache-Module
Pfeil 13.2.3 Apache installieren
Pfeil 13.2.4 Apache-Konfiguration
Pfeil 13.3 PHP installieren und einrichten
Pfeil 13.3.1 Installation
Pfeil 13.3.2 Die PHP-Konfigurationsdatei »php.ini«
Pfeil 13.4 Zusammenfassung

Rheinwerk Computing - Zum Seitenanfang

13.3 PHP installieren und einrichtenZur nächsten Überschrift

Die nächste Komponente Ihres LAMP/WAMP-Systems nach Apache ist der Datenbankserver MySQL, dessen Installation bereits in Kapitel 12, »Datenbanken«, erläutert wurde. Deshalb geht es an dieser Stelle mit der Installation und Konfiguration der Web-Programmiersprache PHP weiter. Die Grundlagen der PHP-Programmierung werden in Kapitel 18, »Webserveranwendungen«, beschrieben.


Rheinwerk Computing - Zum Seitenanfang

13.3.1 InstallationZur nächsten ÜberschriftZur vorigen Überschrift

Es gibt grundsätzlich zwei unterschiedliche PHP-Installationsvarianten: Sie können den Interpreter extern über die CGI-Schnittstelle aufrufen oder aber als Webservermodul installieren. Im Folgenden werden beide Methoden beschrieben; die Modulvariante natürlich am Beispiel von Apache 2.

Installation unter Unix

Als Erstes müssen Sie das aktuelle PHP-Sourcecode-Archiv herunterladen. Die Projektwebsite lautet http://www.php.net/. Das aktuelle Release Mitte Juli 2013 ist 5.5.1. Genau wie bei Apache sollten Sie den MD5-Hash der heruntergeladenen Datei mit dem auf der Website angegebenen Wert vergleichen. Danach können Sie das Archiv entpacken:

$ tar xzvf php-5.5.1.tar.gz

beziehungsweise

$ tar xjvf php-5.5.1.tar.bz2

Nun können Sie in das neu erzeugte Source-Verzeichnis wechseln:

# cd php-5.5.1

Als Nächstes wird das configure-Skript aufgerufen. Verschaffen Sie sich zunächst einen Überblick über die verfügbaren Optionen:

$ ./configure --help |less

Da Sie ein LAMP-System installieren möchten, muss mindestens eine der MySQL-Schnittstellen von PHP konfiguriert werden. Dazu muss MySQL bereits auf Ihrem Rechner installiert sein. Es gibt insgesamt drei verschiedene solcher Schnittstellen; die Unterschiede werden in Kapitel 18, »Webserveranwendungen«, näher erläutert. Für die klassische MySQL-Schnittstelle müssen Sie die Option --with-mysql=MySQL-Installationsverzeichnis angeben. Die beiden anderen Schnittstellen, mysqli oder PDO, benötigen den Pfad zu dem Skript mysql_config im bin-Verzeichnis der MySQL-Installation.

Wenn PHP als Apache 2-Modul laufen soll, ist außerdem die Option --with-apxs2[= /Pfad/zu/apxs] erforderlich. Das »APache eX-tenSion tool« liegt im bin-Verzeichnis von Apache.

Hier sehen Sie einen configure-Aufruf, der die Makefiles zur Installation als Apache 2-Modul mit allen drei MySQL-Schnittstellen in dem Basisverzeichnis /usr/local/php5 erstellt, wobei sich apxs unter /usr/local/apache2/bin und MySQL unter /usr/local/mysql befindet:

$ ./configure --prefix=/usr/local/php5 \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo \
--with-pdo-mysql=/usr/local/mysql/bin/mysql_config \
--with-apxs2=/usr/local/apache2/bin/apxs

Nach einem erfolgreichen Durchlauf von configure werden der eigentliche Build-Vorgang und die Installation in das Zielverzeichnis durchgeführt (Letzteres als User root):

$ make
# make install

Falls Sie PHP mit der Option --with-apxs2 konfiguriert haben, müsste Ihre httpd.conf-Datei nun automatisch folgende Zusatzzeile enthalten:

LoadModule php5_module modules/libphp5.so

Zusätzlich müssen Sie dafür sorgen, dass Apache 2 Dateien mit der Endung .php als PHP-Skripte behandelt. Dazu wird (am besten im bereits vorhandenen Container <If-Module mime_module>) die folgende Zeile hinzugefügt:

AddHandler php5-script .php

Falls Sie PHP als CGI-Sprache kompiliert haben, müssen Sie dagegen folgende Zeilen hinzufügen:

ScriptAlias /php/ /usr/local/php5/bin/
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php"

Nach der PHP-Installation müssen Sie Apache einmal ganz beenden und wieder starten; die Option restart genügt leider nicht. Danach können Sie testen, ob PHP funktioniert. Speichern Sie dazu folgende kleine Datei unter dem Namen info.php in Ihrem Website-Verzeichnis:

<?php
phpinfo();

Öffnen Sie dann Ihren Browser, und geben Sie die URL http://localhost/info.php ein. Wenn alles funktioniert hat, müssten Sie ausführliche Informationen über Ihre PHP-Installation enthalten, wie in Abbildung 13.1 gezeigt.

Installation unter Windows

Für Windows gibt es PHP als offizielles Binärpaket. Das jeweils aktuelle PHP-Release (zurzeit 5.5.1) wird jeweils in zwei verschiedenen Varianten angeboten:

  • Installer
    Eine ausführbare Datei (.exe), die einfach per Doppelklick gestartet wird. Der Installer kann auch automatisch die PHP-Konfiguration als Apache-Modul vornehmen. Diese Variante ist nur bis PHP-Version 5.3 verfügbar, deshalb wird die Verwendung des Installers hier nicht weiter erläutert.
  • ZIP-Archiv
    Diese Datei müssen Sie entpacken; anschließend sind einige Konfigurationsschritte erforderlich.

Führen Sie folgende Schritte durch, um PHP aus der ZIP-Datei zu installieren:

  1. Laden Sie die aktuelle Version der Datei herunter (zurzeit php-5.5.1-Win32-VC11-x86.zip beziehungsweise php-5.5.1-Win32-VC11-x64.zip für 64-Bit-Systeme). Entpacken Sie sie mit dem Windows Explorer, mit WinZip oder einem anderen ZIP-fähigen Programm. Als Verzeichnis empfiehlt sich beispielsweise C:\php5. Die Beschreibung der restlichen Schritte geht davon aus, dass Sie dieses Verzeichnis gewählt haben; andernfalls müssen Sie die Angaben entsprechend anpassen.
  2. Falls Sie PDO und viele weitere interessante PHP-Erweiterungen benötigen, können Sie viele von ihnen unter der URL http://downloads.php.net/pierre/ herunterladen; an direkten DLL-Downloads auf der PECL-Website wird zurzeit noch gearbeitet.
  3. Das PHP-Verzeichnis enthält eine Datei namens php.ini-dist. Es handelt sich um die Standardversion der Konfigurationsdatei php.ini. Kopieren Sie sie nach %SystemRoot% (meist C:\Windows), und benennen Sie sie in php.ini um.
  4. Nehmen Sie an Ihrer neuen php.ini-Datei folgende Änderungen vor (die entsprechenden Zeilen sind bereits enthalten, aber noch nicht mit Pfadangaben versehen):
    doc_root = C:\Programme\Apache Software
    Foundation\Apache2\htdocs ; Ihre DocumentRoot
    extension_dir = C:\PHP\ext ; PHP-Extension-Verzeichnis

    Wie Sie sehen, wird in der Windows-Version dieser Datei der systemübliche Backslash (\) als Pfad-Trennzeichen verwendet. Das Semikolon leitet einen Kommentar ein, der bis zum Zeilenende reicht. Wie die Kommentare schon andeuten, müssen Sie die Angaben an Ihr Apache- beziehungsweise PHP-Verzeichnis anpassen.

  5. Fügen Sie das Verzeichnis C:\php5 zur Umgebungsvariablen PATH hinzu. Dies geschieht unter Start · Systemsteuerung · System · Erweitert · Umgebungsvariablen.
  6. Falls es Startschwierigkeiten gibt, müssen Sie die Datei php5ts.dll aus Ihrem PHP-Verzeichnis nach %SystemRoot%\System32 kopieren. Möglicherweise befindet sich dort nämlich eine ältere Version dieser Datei.
  7. Nehmen Sie zum Schluss folgende Ergänzungen an Ihrer httpd.conf-Datei vor, um PHP als Apache-Modul zu betreiben:
    LoadModule php5_module "C:/php5/php5apache2.dll"
    AddHandler php5-script .php

Für die CGI-Variante werden dagegen folgende Zeilen benötigt:

    Beenden Sie Apache zum Schluss, und starten Sie ihn wieder. Im Apache-Monitor müsste er sich nun mit einer Versionsangabe wie Apache/2.2.25 (Win32) PHP/5.5.1 melden. Auch den zuvor bei der Unix-Installation beschriebenen Test mit phpinfo() können Sie durchführen; das Ergebnis sollte etwa so aussehen wie in Abbildung 13.1.

    Abbildung

    Abbildung 13.1 Die Ausgabe von phpinfo(), hier für die PHP-Version 5.3.10, die mit Ubuntu 12.04 LTS geliefert wurde

    Apache und PHP unter Mac OS X

    Seit Mac OS X 10.6 (Snow Leopard) sind Apache 2 und PHP 5 bereits ab Werk installiert. Um sie zu aktivieren, starten Sie die Systemeinstellungen im Dock. Wählen Sie Sharing aus dem Abschnitt Internet & Netzwerk, und aktivieren Sie hier das Web Sharing – fertig.


    Rheinwerk Computing - Zum Seitenanfang

    13.3.2 Die PHP-Konfigurationsdatei »php.ini«Zur vorigen Überschrift

    Wie bereits im Zusammenhang mit der Installation angesprochen wurde, besitzt PHP seine eigene Konfigurationsdatei php.ini. Wie der Dateiname bereits vermuten lässt, wurde ihre Syntax (auch unter Unix) den klassischen Windows-INI-Dateien nachempfunden:

    • Sie enthält verschiedene Abschnitte, die durch Schlüsselwörter in eckigen Klammern gekennzeichnet sind. Beispiel:
      [PHP]

    • Jede Einstellung steht in einer eigenen Zeile und hat das Format Name=Wert.
      Beispiel:
      doc_root = /usr/local/apache2/htdocs

      Unter Windows wird in Pfaden übrigens, wie bereits erwähnt, der plattformspezifische Backslash (\) verwendet.

    • Ein Semikolon leitet einen Kommentar ein, der bis zum Ende der jeweiligen Zeile reicht. Beispiel:
      ; doc_root: Die DocumentRoot der Website
      doc_root = "C:\Programme\Apache Group\Apache2\htdocs" ; Win32

    In Tabelle 13.6 sehen Sie die wichtigsten Optionen für die Datei. Beachten Sie, dass die Syntax in der Regel toleranter ist, als es in der Tabelle den Anschein erweckt. Die Boolean-Alternativen On|Off, "On"|"Off" und "1"|"0" sind beispielsweise in der Regel synonym. Die Angaben stammen aber aus der Originaldokumentation, sodass Sie auf der sicheren Seite sind, wenn Sie sich daran halten.

    Tabelle 13.6 Die wichtigsten Optionen für die Datei php.ini

    Einstellung Standardwert Erläuterungen

    short_open_tag = On|Off

    On

    Bestimmt, ob <? ... ?> statt <?php ... ?>
    erlaubt ist.

    asp_tags = On|Off

    Off

    Bestimmt, ob die ASP-Syntax <% ... %> statt
    <?php ... ?>
    zulässig ist.

    max_execution_time

    30

    maximale Ausführungsdauer von PHP-Skripten in Sekunden, bevor sie abgebrochen werden

    precision = "INT"

    "14"

    Genauigkeit von Fließkommazahlen als
    Ziffernanzahl

    y2k_compliance = On|Off

    Off

    Jahr-2000-Kompatibilität (funktioniert nur mit neueren Browsern)

    expose_php = On|Off

    On

    Bestimmt, ob die PHP-Existenz z. B. in den Apache-ServerTokens veröffentlicht wird.

    memory_limit = "...M|K|B"

    "8M"
    (8 Megabyte)

    Maximale Speichermenge, die ein Skript verbrauchen darf. Existiert nur, wenn PHP mit --enable-memory-limit kompiliert wurde.

    track-vars = "On"|"Off"

    "On"

    Anfrage- und Serverdaten werden in
    $_ENV
    , $_GET, $_POST, $_COOKIE und
    $_SERVER
    zur Verfügung gestellt.

    arg_separator.output = "STRING"

    "&"

    Trennzeichen in Query-Strings, die von PHP erzeugt wurden

    arg_separator.input = "STRING"

    "&"

    Trennzeichen für die Auswertung von Query-Strings (jedes Zeichen des Wertes wird einzeln geprüft,
    z. B. "&;")

    variables_order = "STRING"

    "EGPCS"

    Reihenfolge, in der Variablenarten für register_globals und S_REQUEST ausgewertet werden:
    E
    = Umgebungsvariablen, G = GET-Felder, P = POST-Felder, C = Cookies, S = Servervariablen

    register_globals =
    "On"|"Off"

    "Off"

    Stellt Formularfelder, Umgebungsvariablen, Servervariablen und Cookies automatisch als globale Variablen mit ihrem Feldnamen bereit. Praktisch, aber sicherheitstechnisch riskant; daher seit Version 4.2 standardmäßig "Off". Wurde in PHP 5.4 endgültig abgeschafft.

    register_argc_argv =
    "On"|"Off"

    "On"

    Stellt GET-Variablen und Kommandozeilenargumente als C-ähnliche argc/argv bereit.

    register_long_arrays =
    "On"|"Off"

    "On"

    Definiert $HTTP_POST_VARS und $HTTP_GET_VARS zusätzlich zu $_POST und $_GET (seit Version 5.0 konfigurierbar; davor immer eingeschaltet).

    post_max_size =
    "...M|K|B"

    "8M"

    maximale Größe von POST-Daten

    auto_prepend_file =
    "DATEIPFAD"

    ""

    Include-Datei, die automatisch am Kopf jeder Datei importiert wird

    auto_append_file =
    "DATEIPFAD"

    ""

    Include-Datei, die automatisch am Fuß jeder Datei importiert wird

    default_mimetype =
    "TYPE/SUBTYPE"

    "text/html"

    Standardtyp für den Header Content-Type

    default_charset =
    "ZEICHENSATZ"

    "iso-88591"

    Standardzeichensatz für den Header
    Content-Type

    always_populate_raw_
    post_data = "0"|"1"

    "0"

    Bestimmt, ob $HTTP_RAW_POST_DATA (POST-Daten ohne Variablenaufteilung) immer erzeugt wird.

    allow_webdav_methods =
    "0"|"1"

    "0"

    Bestimmt, ob WebDAV-HTTP-Methoden zulässig sind.

    include_path =
    "PFAD1[:PFAD2:...]"

    Umgebungsvariablen
    PHP_INCLUDE_
    PATH

    Verzeichnisse, in denen nach Include-Dateien gesucht wird

    doc_root =
    "PFAD1[:PFAD2:...]"

    PHP_INCLUDE_
    PATH

    übergeordnetes Verzeichnis für PHP-Skripte (z. B. Apache- DocumentRoot)

    user_dir = "VERZEICHNIS"

    NULL

    Name des Benutzerverzeichnisses mit PHP-Dateien (entspricht dem Konzept des Apache-Moduls mod_userdir)

    extension_dir = "PFAD"

    Umgebungsvariablen
    PHP_EXTENSION_DIR

    Verzeichnis mit Extension-Dateien, die beim PHP-Start geladen werden

    extension = "DATEI"

    Fügt die angegebene PHP-Erweiterung hinzu, z. B. extension=php_mysqli.dll
    für mysqli.

    cgi.rfc2616_headers =
    "0"|"1"

    "0"

    ausgeschaltet Status:-Header; eingeschaltet RFC-2616-Header

    file_uploads =
    "0"|"1"

    "1"

    Datei-Uploads zulässig

    upload_tmp_dir =
    "PFAD"

    NULL
    (Systemvorgabe)

    Temp-Verzeichnis für Uploads

    upload_max_filesize =
    "...M|K|B"

    "2M"

    maximale Größe für Upload-Datei



    Ihr Kommentar

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

    >> Zum Feedback-Formular
    << zurück




    Copyright © Rheinwerk Verlag GmbH 2013
    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.


    [Rheinwerk Computing]

    Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de


      Zum Katalog
    Zum Katalog: IT-Handbuch für Fachinformatiker






    IT-Handbuch für Fachinformatiker
    Jetzt bestellen


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

     Buchempfehlungen
    Zum Katalog: Java ist auch eine Insel






     Java ist auch
     eine Insel


    Zum Katalog: Linux Handbuch






     Linux Handbuch


    Zum Katalog: Computer Netzwerke






     Computer Netzwerke


    Zum Katalog: Schrödinger lernt HTML5, CSS3 und JavaScript






     Schrödinger lernt
     HTML5, CSS3
     und JavaScript


    Zum Katalog: Windows 8.1 Pro






     Windows 8.1 Pro


     Shopping
    Versandkostenfrei bestellen in Deutschland und Österreich
    InfoInfo