Installation auf Windows Systemen

Dieser Abschnitt behandelt Windows 98/Me und Windows NT/2000/XP PHP läuft nicht auf 16 Bit-Plattformen wie z.B. Windows 3.1, und manchmal sprechen wir bei den unterstützten Plattformen von Win32. Seit PHP 4.3.0 wird auch Windows 95 nicht mehr unterstützt.

Es gibt zwei Wege PHP für Windows zu installieren: entweder manuell, oder mittels dem InstallShield Installer.

Wenn Sie Microsoft Visual Studio besitzen, können Sie auch den Source Code von PHP selbst kompilieren.

Haben Sie PHP erst einmal auf Ihrem Windows System installiert, können Sie als Erweiterung der Funktionalität auch verschiedene Erweiterungen laden.

Windows InstallShield

Der auf der Downloadseite http://www.php.net/downloads.php erhältliche Windows PHP Installer installiert die CGI Version von PHP, und konfiguriert auch die Webserver IIS, PWS, und Xitami.

Anmerkung: Beachten Sie bitte, dass der InstallShield Installer zwar eine einfache Art der Installation von PHP ist, gleichzeitig aber auch in verschiedenen Aspekten eingeschränkt ist, wie z.B. ein automatisches Setup von Erweiterungen nicht unterstützt wird. Das gesamte Angebot an unterstützten Erweiterungen ist nur verfügbar, wenn Sie die Binärdistribution im zip-Format herunterladen.

Installieren Sie Ihren gewünschten HTTP Server auf Ihrem System und stellen Sie sicher, dass er läuft.

Starten Sie nun das Installationsprogramm, und folgen Sie den Instruktionen des Installation Wizards. Es werden zwei Installationsarten unterstützt: Standard bietet zweckmäßige Standardeinstellungen wo dies möglich ist, und Advanced (erweitert), welche die gewünschten Einstellungen während der Installation abfragt.

Der Installation Wizard sammelt genug Informationen, um die php.ini zu erstellen, und den Webserver für den Einsatz von PHP zu konfigurieren. Für IIS und auch PWS auf Windows NT Workstation wird eine Liste mit den Knoten auf dem Server, sowie eine Liste mit den Script Mappings angezeigt aus welcher Sie die gewünschten Knoten auswählen können, auf denen PHP in die Script Mappings eingetragen werden soll.

Wenn die Installation fertig ist informiert Sie der Installer, ob Sie Ihr System oder den Server neu starten sollen, oder ob Sie einfach mit der Nutzung von PHP beginnen können.

Warnung

Seien Sie sich darüber im Klaren, dass dieses Setup von PHP nicht sicher ist. Wenn Sie ein sicheres Setup von PHP möchten, setzen Sie PHP manuell auf, und wählen jede Option sorgfältig aus. Dieses automatische Setup bietet Ihnen eine sofort lauffähige PHP Installation, ist jedoch nicht für den Einsatz auf Online-Servern gedacht.

Manuelle Installationsschritte

Diese Installationsanleitung hilft Ihnen, PHP auf Ihrem Windows Webserver manuell zu installieren und zu konfigurieren. Laden Sie sich hierfür bitte die gezippte Distribution von der Downloadseite http://www.php.net/downloads.php herunter. Die Originalversion dieser Anleitung wurde von Bob Silva verfasst, welche Sie auf http://www.umesd.k12.or.us/php/win32install.html finden.

Diese Anleitung unterstützt Sie bei der manuellen Installation für:

PHP 4 für Windows gibt es in zwei Varianten - ein CGI Modul (php.exe), und verschiedene SAPI Module (z.B. php4isapi.dll). Letztere ist neu in PHP 4, und bietet eine signifikant höhere Performance, sowie neue Funktionalitäten. Zusätzlich gibt es eine CLI Version, die im Abschnitt Using PHP from the command line näher beschrieben ist.

Warnung

Die Qualität der SAPI Module wurde in PHP 4.1 signifikant erhöht. In älteren Systemen könnte es vorkommen, dass beim Server Fehlermeldungen auftreten, oder dass andere Servermodule wie z.B. ASP nicht funktionieren.

Wenn Sie eines der SAPI Module unter Windows 95 einsetzen möchten, holen Sie sich das DCOM Update von den Microsoft DCOM Seiten. Für das ISAPI Modul wird ein ISAPI 4.0 kompatibler Webserver benötigt (getestet wurden IIS 4.0, PWS 4.0 und IIS 5.0). IIS 3.0 wird NICHT unterstützt. Wenn Sie gediegene PHP Unterstützung wünschen, sollten Sie In diesem Fall den Windows NT 4.0 Option Pack mit IIS 4.0 downloaden.

Die folgenden Schritte sollten vor den serverspezifischen Instruktionen an allen Installationen durchgeführt werden.

Den Source kompilieren

Bevor wir beginnen lohnt es sich, folgende Frage zu beantworten: "Warum ist das Kompilieren unter Windows so schwer?" Zwei Gründe drängen sich auf:

  1. Windows genießt (noch) keine große Gemeinschaft von Entwicklern welche auch bereit sind, deren Sourcecode frei zur Verfügung zu stellen. Als Ergebnis wurden die nötigen Investitionen in die für solche Entwicklungen nötige Infrastruktur nicht getätigt. Das meiste was verfügbar ist, wurde durch die Portierung der nötigen Werkzeuge von Unix möglich gemacht. Seien Sie deshalb nicht überrascht, wenn manches aus diesem Erbe von Zeit zu Zeit durchscheint.

  2. Fast alle der folgenden Instruktionen sind von der Art "Einstellen und vergessen". Deshalb lehnen Sie sich zurück, und folgen den nachstehenden Instruktionen so gewissenhaft wie möglich.

Anforderungen

Um PHP kompilieren und erstellen zu können, benötigen eine Microsoft Entwicklungsumgebung. Microsoft Visual C++ 6.0 wird empfohlen. Um die heruntergeladenen Dateien entpacken zu können, brauchen Sie ein Programm zum Dekomprimieren. Sollten Sie über kein derartiges Programm verfügen, erhalten Sie eine freie Version von InfoZip.

Bevor Sie beginnen, müssen Sie einiges downloaden...

Letztendlich benötigen Sie noch die Sourcecodes von PHP 4 selbst. Sie erhalten die letzte Entwicklerversion mittels anonymen CVS, einem sog. Snapshot, oder dem Sourcecode der letzten offiziellen Version.

Alles zusammenfügen

Nach dem Download der benötigten Pakete dekomprimieren Sie diese an einer geeigneten Stelle.

  • Erstellen Sie ein Arbeitsverzeichnis, in dem sich nach dem Dekomprimieren alle Dateien befinden werden, z.B. c:\work.

  • Erstellen Sie das Verzeichnis win32build unter Ihrem Arbeitsverzeichnis (c:\work), und dekomprimieren Sie die win32build.zip hinein.

  • Erstellen Sie das Verzeichnis bindlib_w32 unter Ihrem Arbeitsverzeichnis (c:\work), und dekomprimieren Sie die bindlib_w32.zip hinein.

  • Dekomprimieren Sie den PHP Sourcecode in Ihr Arbeitsverzeichnis (c:\work).

Diesen Schritten folgend, sollte Ihre Verzeichnisstruktur wie folgt aussehen:

+--c:\work
|  |
|  +--bindlib_w32
|  |  |
|  |  +--arpa
|  |  |
|  |  +--conf
|  |  |
|  |  +--...
|  |
|  +--php-4.x.x
|  |  |
|  |  +--build
|  |  |
|  |  +--...
|  |  |
|  |  +--win32
|  |  |
|  |  +--...
|  |
|  +--win32build
|  |  |
|  |  +--bin
|  |  |
|  |  +--include
|  |  |
|  |  +--lib

Erstellen Sie das Verzeichnis c:\usr\local\lib, und kopieren Sie bison.simple von c:\work\win32build\bin nach c:\usr\local\lib.

Anmerkung: Benutzer von Cygwin können den letzten auslassen. Eine entsprechend installierte Cygwin Umgebung bietet die erforderlichen Dateien bison.simple und bison.exe.

MVC ++ konfigurieren

Der nächste Vorbereitungsschritt ist die Konfiguration von MVC ++. Starten Sie Microsoft Visual C++, und wählen Sie im Menü Tools => Options aus. Wählen Sie in dem Dialog den Verzeichnis-Tab aus. Wechseln Sie zu Executables, Includes, and Library files. Ihre Einträge sollten wie folgt aussehen:

  • Executable files: c:\work\win32build\bin, Cygwin users: cygwin\bin

  • Include files: c:\work\win32build\include

  • Library files: c:\work\win32build\lib

resolv.lib erstellen

Sie müssen die resolv.lib Bibliothek erstellen. Entscheiden Sie, ob Sie die debug symbols verfügbar haben möchten (bindlib - Win32 Debug) oder nicht (bindlib - Win32 Release). Erstellen Sie die folgende Konfiguration:

  • Als Benutzer des GUI starten Sie VC++ und wählen Datei => Arbeitsbereich öffnen aus, navigieren zu c:\work\bindlib_w32 und selektieren bindlib.dsw. Dann wählen Sie Erstellen => Setze aktuelle Konfiguration und die gewünschte Konfiguration aus. Zum Schluss wählen Sie Erstellen => Rebuild All.

  • Als Benutzer der Kommandozeile stellen Sie sicher, dass Sie entweder die C++ Umgebungsvariablen registriert, oder vcvars.bat ausgeführt haben. Dann führen Sie eines der folgenden Kommandos aus:

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"

Nun sollten Sie eine verwendbare resolv.lib in Ihrem c:\work\bindlib_w32\Debug oder Release Unterverzeichnis haben. Kopieren Sie diese Datei nach c:\work\win32build\lib, und überschreiben Sie die dort vorhandene Datei mit dem selben Namen.

Kompilieren

Der einfachste Weg zu beginnen, ist das Erstellen der CGI Version.

  • Wenn Sie das GUI benutzen: Starten Sie VC++, selektieren Sie Datei => Arbeitsbereich öffnen, und wählen Sie c:\work\php-4.x.x\win32\php4ts.dsw aus. Dann selektieren Sie Erstellen => Setze aktuelle Konfiguration, und wählen die gewünschte Konfiguration aus (entweder php4ts - Win32 Debug_TS oder php4ts - Win32 Release_TS). Letztendlich wählen Sie Erstellen => Rebuild All.

  • Wenn Sie die Kommandozeile benutzen stellen Sie sicher, dass die C++ Environmentvariablen registriert sind oder starten Sie vcvars.bat, und führen in dem Verzeichnis c:\work\php-4.x.x\win32 eines der folgenden Kommandos aus:

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"

    • Nun sollten Sie entweder in Ihrem Debug_TS oder Release_TS Unterverzeichnis eine verwendbare php.exe haben.

Durch editieren der main/config.win32.h.in ist es möglich, kleinere Adaptierungen zum Prozess des Erstellens vorzunehmen. So können Sie z.B. die inkludierten Erweiterungen, den Ort der php.ini, etc. ändern.

Als nächstes möchten Sie vielleicht die CLI Version erstellen, die für den Einsatz auf der Kommandozeile konzipiert wurde (PHP from the command line). Die Schritte sind die gleichen wie bei der CGI Version, außer dass Sie die Projektdateien php4ts_cli - Win32 Debug_TS bzw. php4ts_cli - Win32 Release_TS auswählen müssen. Nach dem erfolgreichen Kompilieren finden Sie die php.exe entweder in dem Verzeichnis Release_TS\cli\ oder in Debug_TS\cli\.

Anmerkung: Wenn Sie PEAR und das komfortable Installationsprogramm benutzen möchten, ist das CLI-SAPI erforderlich. Weitere Informationen zu PEAR und dem Installationsprogramm finden Sie in der Dokumentation auf der PEAR Webseite.

Um das SAPI Modul php4isapi.dll zur Integration von PHP mit Microsoft IIS zu erstellen, setzen Sie aktive Konfiguration auf php4isapi-wasimmer-config, und kompilieren Sie die gewünschte dll.

Installation von Windows Erweiterungen

Sind PHP und ein Webserver einmal auf Windows installiert, möchten Sie vielleicht einige Erweiterungen mit zusätzlicher Funktionalität installieren. Die folgende Tabelle beschreibt einige der verfügbaren Erweiterungen. Sie können Erweiterungen auswählen, welche beim Start von PHP geladen werden, indem Sie das Kommentarzeichen (';') in den entsprechenden 'extension=php_*.dll' Zeilen in der php.ini entfernen. Sie können ein Modul mittels dl() auch dynamisch laden.

Die DLLs für PHP Erweiterungen enthalten als Präfix 'php_' (und 'php3_' in PHP 3), um Verwechslungen zwischen PHP Erweiterungen und deren unterstützenden Bibliotheken zu vermeiden.

Anmerkung: In PHP 4.0.6 ist die Unterstützung für BCMath, Calendar, COM, FTP, MySQL, ODBC, PCRE, Session, WDDX und XML inkludiert. Um diese Funktionen zu benutzen, brauchen Sie keine zusätzlichen Erweiterungen zu laden. Eine Liste der bereits inkludierten Module befindet sich in der README.txt oder install.txt Ihrer Distribution.

Anmerkung: Einige Erweiterungen benötigen externe DLLs, wovon bereits einige im Verzeichnis 'dlls' der PHP Distribution enthalten sind. Manche Erweiterungen benötigen jedoch DLLs, welche nicht in der PHP Distribution enthalten sind, wie z.B. Oracle (php_oci8.dll).

Kopieren Sie die DLLs vom Verzeichnis 'dlls' in Ihren Windows PATH, gute Plätze sind:

c:\windows\system auf Windows 9x/Me
c:\winnt\system32 auf Windows NT/2000
c:\windows\system32 auf Windows XP

Sollten diese Dateien bereits auf Ihrem System installiert sein, überschreiben Sie diese nur, wenn etwas nicht korrekt läuft (Vor dem Überschreiben empfehlen wir ein Backup, oder verschieben diese Dateien in ein anderes Verzeichnis - nur für den Fall dass etwas schiefgeht).

Tabelle 3-1. PHP Erweiterungen (Extensions)

ErweiterungBeschreibungAnmerkungen
php_bz2.dllbzip2 KomprimierungsfunktionenKeine
php_calendar.dllKalender UmwandlungsfunktionenIst seit PHP 4.0.3 integriert
php_cpdf.dllClibPDF FunktionenKeine
php_crack.dllCrack FunktionenKeine
php3_crypt.dllVerschlüsselungsfunktionenKeine
php_ctype.dllctype FunktionenKeine
php_curl.dllCURL, Client URL BibliotheksfunktionenBenötigt libeay32.dll, ssleay32.dll (bundled)
php_cybercash.dllCybercash Zahlungssystem FunktionenKeine
php_db.dllDBM FunktionenVeraltet, verwenden Sie stattdessen DBA (php_dba.dll)
php_dba.dllDBA Datenbank (dbm-style) Abstraktions-FunktionenKeine
php_dbase.dlldBase FunktionenKeine
php3_dbm.dllBerkeley DB2 BibliothekKeine
php_domxml.dllDOM XML FunktionenBenötigt libxml2.dll (bundled)
php_dotnet.dll.NET FunktionenKeine
php_exif.dllLiest EXIF Headers einer JPEG-GrafikKeine
php_fbsql.dllFrontBase FunktionenKeine
php_fdf.dllFDF Forms Data Format Funktionen.Benötigt fdftk.dll (bundled)
php_filepro.dllfilePro FunktionenNur Lesezugriff
php_ftp.dllFTP FunktionenIst seit PHP 4.0.3 integriert
php_gd.dllGD BibliotheksfunktionenKeine
php_gd2.dllGD2 Bibliotheksfunktionen zur BildmanipulationKeine
php_gettext.dllGettext FunktionenBenötigt gnu_gettext.dll (bundled)
php_hyperwave.dllHyperWave FunktionenKeine
php_iconv.dllICONV ZeichensatzumwandlungBenötigt iconv-1.3.dll (bundled)
php_ifx.dllInformix FunktionenBenötigt Informix Bibliotheken
php_iisfunc.dllIIS Managementfunktionenkeine
php_imap.dllIMAP POP3 und NNTP FunktionenPHP 3: php3_imap4r1.dll
php_ingres.dllIngres II FunktionenBenötigt Ingres II Bibliotheken
php_interbase.dllInterBase FunktionenBenötigt gds32.dll (bundled)
php_java.dllJava extensionBenötigt jvm.dll (bundled)
php_ldap.dllLDAP FunktionenBenötigt libsasl.dll (bundled)
php_mhash.dllMhash FunktionenKeine
php_ming.dllMing Funktionen für FlashKeine
php_msql.dllmSQL FunktionenBenötigt msql.dll (bundled)
php3_msql1.dllmSQL 1 Clientunknown
php3_msql2.dllmSQL 2 Clientunknown
php_mssql.dllMSSQL FunktionenBenötigt ntwdblib.dll (bundled)
php3_mysql.dllMySQL FunktionenIn PHP 4 integriert
php3_nsmail.dllNetscape Mail Funktionenunknown
php3_oci73.dllOracle Funktionenunknown
php_oci8.dllOracle 8 FunktionenBenötigt Oracle 8 Client Bibliotheken
php_openssl.dllOpenSSL FunktionenBenötigt libeay32.dll (bundled)
php_oracle.dllOracle FunktionenBenötigt Oracle 7 Client Bibliotheken
php_pdf.dllPDF FunktionenKeine
php_pgsql.dllPostgreSQL FunktionenKeine
php_printer.dllPrinter FunktionenKeine
php_xslt.dllXSLT FunktionenBenötigt sablot.dll (bundled)
php_snmp.dllSNMP get and walk FunktionenNur NT!
php_sybase_ct.dllSybase FunktionenBenötigt Sybase Client Bibliotheken
php_yaz.dllYAZ FunktionenKeine
php_zlib.dllZLib KomprimierungsfunktionenKeine