HOMESOFTWAREABOUT MEPICTURESFUNLINKS

PHP Apache Modul

  • Einleitung
  • Installations-Anleitung
  • Update-Anleitung
  • Beispiele
  • FAQ
  • Weitere Informationen

This page in French (Thanks Guillaume Henot!)
This page in English


********** WICHTIG ************

Diese Seite ist veraltet und die Informationen darauf treffen nicht mehr bzw. nur noch teilweise zu. Die englische Version der Seite ist auf dem aktuellen Stand.

********** WICHTIG ************

HINWEIS bezüglich PHP Version 4.2.x: Wenn Ihre PHP-Skripts ab Version 4.2.x nicht mehr richtig funktionieren, liegt das Problem NICHT an meinem Modul, sondern an einigen Änderungen in PHP. Es gab mit dieser Version einige Umstellungen, die in den Release Notes erläutert sind. Insbesondere sind einige Variablen nicht mehr gleich "sichtbar". Sie werden vermutlich Ihren PHP-Code anpassen müssen, bei mir musste jedes einzelne Skript geändert werden.


Einführung

Dies ist das PHP Modul für den in Mac OS X enthaltenen Apache Webserver.
PHP ist eine Server-seitige, Plattform-unabhängige in HTML eingebettete Skript-Sprache für dynamische Webseiten.

Diese spezielle Version des Moduls basiert auf der neusten Version 4.3 der Software.

  • Sie funktioniert NUR mit Mac OS X Version 10.2 (Jaguar)!

Falls Sie eine Version benötigen, die unter 10.1.x funktioniert steht die ältere Version 4.2.2 noch zur Verfügung. Benennen Sie sie nach dem Download und vor dem Dekomprimieren mit dem unten angegebenen "gunzip" Kommando um, so dass der Name "libphp4.so.gz" lautet.

Das Modul enthält Unterstützung für folgende Optionen:

  • Die MySQL und PostgreSQL Datenbanken
  • Die PDFLib PDF Bibliothek
  • Die cURL Bibliothek für diverse Netzwerk-Kommunikationsprotokolle
  • Die GD Bild-Manipulations Bibliothek (mit PNG-, JPEG-, PostScript Type 1- and TrueType Schrift-Unterstützung).
  • Den expat XML parser und WDDX
  • XSLT Transformationen
  • LDAP Zugriff
  • Die IMAP Client Bibliothek
  • FTP Client Zugriff
  • exif Digital-Kamera Metadaten-Unterstützung
  • transparent session id propagation (--enable-trans-sid) Unterstützung
  • mcrypt Verschlüsselungs-Funktionen
  • sockets Erweiterung (noch experimentell!)
  • iODBC Datenbank-Support

Das offizielle ChangeLog enthält die Umfangreiche Liste der Verbesserungen in dieser Version.

HINWEIS: Dieses Modul funktioniert ausschliesslich mit dem unveränderten Original-Apache Webserver der mit Mac OS X installiert wurde.
Falls Sie den Webserver selbst vom Sourcecode ausgehend neu kompiliert haben, werden sie höchstwahrscheinlich eine Fehlermeldung der Art "module structure is garbled" sehen, sobald Sie versuchen, den Webserver nach der Installation dieses Moduls neu zu starten. Sie müssen sich in diesem Fall auch das PHP Modul noch selbst kompilieren (passend zu Ihrem eigenen Apache), oder wieder den original Apache Server von Apple installieren.


Installations-Anleitung

Dieses Modul benötigt zwingend Mac OS X 10.2. Es funktioniert nicht mit älteren 10.1 Systemen.

Seit Mac OS 10.1 liefert Apple bereits ein funktionierendes PHP Modul mit.
Dieses Modul von Apple bietet wesentlich weniger Funktionen (kein GD, nur MySQL DB Unterstützung etc.), benötigt aber vermutlich etwas weniger Speicher.

Falls Sie mein Modul von dieser Seite benutzen möchten (d.h. mehr Funktionen), führen Sie zunächst die folgenden Schritte aus, andernfalls (d.h. sie möchten das Apple Modul benutzen) fahren Sie direkt mit "Aktivieren des PHP Moduls" fort.

  1. Öffnen Sie ein Terminal-Fenster
  2. Tippen Sie "curl -O http://www2.entropy.ch/download/libphp4.so.gz", warten Sie bis die Übertragung beendet ist
  3. Tippen Sie "gunzip libphp4.so.gz"
  4. Tippen Sie "sudo mv libphp4.so /usr/libexec/httpd/"

Aktivieren des PHP Moduls

  1. Öffnen Sie ein Terminal-Fenster
  2. Tippen Sie "cd /etc/httpd"
  3. Tippen Sie "sudo apxs -e -a -n php4 libexec/httpd/libphp4.so"
  4. Unter OS X vor 10.2 tippen Sie
    sudo perl -p -i.bak -e 's%#(AddType \S+-php[ -])%$1%i' httpd.conf
  5. Unter OS X ab 10.2 tippen Sie
    echo 'echo "AddType application/x-httpd-php .php" >> /etc/httpd/httpd.conf' | sudo sh -s

(Hinweis: Tippen Sie dies nicht von Hand ab, benutzen Sie stattdessen bitte Copy/Paste direkt von dieser Webseite aus in das Terminal-Fenster)

Tippen Sie zuletzt "sudo apachectl graceful" um den Webserver neu zu starten.

PHP sollte nun aktiv sein. Sie können dies überprüfen, indem Sie in Ihrem "Sites" Ordner eine Datei anlegen, deren Name "test.php" lautet. Schreiben Sie folgende Zeile in diese Datei:
"<?php phpinfo() ?>".

Öffnen Sie nun die Adresse http://127.0.0.1/~ihr_kurzname/test.php in Ihrem Web-Browser.
Sie sollten eine lange Status-Tabelle mit Informationen über das PHP Modul sehen.


Update-Anleitung

Falls Sie bereits eine ältere Version dieses Moduls installiert haben, führen Sie folgende Schritte aus, um auf die neuste Version zu aktualisieren:

  1. Öffnen Sie ein Terminal-Fenster
  2. Tippen Sie "curl -O http://www2.entropy.ch/download/libphp4.so.gz", warten Sie bis die Übertragung beendet ist
  3. Tippen Sie "gunzip libphp4.so.gz"
  4. Tippen Sie "sudo apxs -i -a -n php4 libphp4.so"
  5. Tippen Sie "sudo apachectl graceful" um den Webserver neu zu starten

Die neue Version sollte nun aktiv sein, Sie können dies mit dem oben erwähnten phpinfo() Tip überprüfen.


Beispiele

  • Das phpinfo Beispiel.
  • Eine Demonstration der Bild-Manipulations-Möglichkeiten. (Quelltext anzeigen)
  • Hier ist ein weiteres Beispiel, dies ist ein Aqua Button Generator. (Quelltext anzeigen)
  • Demonstration des Type 1 Schrift Rasterizers. (Quelltext anzeigen)
  • Dasselbe mit anderer Schrift
    Beachten Sie hierzu auch das t1utils Paket, es enthält Programme zur Konversion von Mac PostScript Schriften in das von dieser Bibliothek benötigte UNIX Format
  • Das Uhr PDF Beispiel aus dem Abschnitt über PDFLib im PHP Handbuch

FAQ

Dieser Abschnitt gibt Antworten auf einige sehr häufig gestellte Fragen.

"Wo ist die php.ini Datei?"

In diesem Paket ist keine enthalten. Falls Sie eine benötigen, legen Sie sie einfach unter /usr/local/lib/php.ini an, einschliesslich des lib Verzeichnisses falls dieses noch nicht existiert:

sudo mkdir -p /usr/local/lib
sudo touch /usr/local/lib/php.ini

Die meisten Leute, die nach dieser Datei fragen, scheinen am Versand von E-mails aus PHP heraus interessiert zu sein. PHP unter Mac OS X benutzt dazu das von Apple mitgelieferte sendmail Programm, dieses verweigert jedoch aus Sicherheitsgründen (aufgrund fehlerhafter Berechtigungen im Dateisystem) standardmässig den Betrieb.

Meistens reichen folgende Befehle, um das Problem zu beheben:

sudo chmod g-w /

sudo chown smmsp:smmsp /var/spool/clientmqueue

Beachten Sie, dass diese Prozedur nach jedem Mac OS X Update wiederholt werde muss, da Apple die Berechtigungen bei jedem dieser Updates wieder falsch setzt...

Dieser gibt weitere Hilfe bezüglich sendmail und Mac OS X 10.1.5.

"Funktioniert dieses Modul unter Mac OS X Server?"

Anscheinend funktioniert es unter OS X Server 10.2 wenn man das "apple_auth_module" in der Apache Server Konfigurationsdatei deaktiviert. Vielen Dank an Arnold Schwaighofer for this tip.

Weshalb erscheint Müll der Art {\rtf1\mac\ansicpg10000\cocoartf100 auf jeder Seite?

Sie haben vermutlich TextEdit benutzt, um Ihre .php Datei zu bearbeiten. Tun Sie das nicht!. TextEdit fügt haufenweise RTF Steuerzeichen in Ihren HTML oder PHP Code in, den Sie danach im Browser sehen.

Ein sehr gutes Werkzeug für Arbeiten dieser Art ist der BBEdit oder BBEdit lite Text Editor!

"Weshalb erhalte ich die Fehlermeldung 'Undefined symbols: _apple_hfs_module' when ich versuche, Apache unter Mac OS X 10.1 zu starten?"

Dies ist ein bekanntes Problem. Weitere Informationen dazu bei stepwise.com.

"Kann ich auch die CGI-Version von PHP bekommen?"

Ja. Hier ist sie (Version 4.1.1).


Weitere Informationen

  • www.php.net is die erste Adresse für Informationen zu PHP Die Einführung sowie das kommentierte Referenz-Handbuch sind sehr zu empfehlen.
  • Sheri German schrieb eine Serie sehr nützlicher und einfacher Einführungen und Tips zum Thema MySQL / PHP / GoLive integration
  • Apple's Developer Connection hat eine Seite für PHP Entwickler