04
Apr
07

PHP und IIS auf einem 64 Bit Windows Server 2003

Ja, ihr habt Recht. Dabei handelt es sich wahrlich, um eine seltene und evtl. auch nicht wirklich sinnvolle Kombination. Angenommen ihr habt aber eine bestehende Infrastruktur mit bereits existierenden .Net Seiten und wollt nicht auf ein auf php-basierendes CMS, wie zum Beispiel WordPress verzichten. Dann gibt es den einen oder anderen Grund, diese Kombination tatsächlich umzusetzen. Da die Einrichtung aber nicht ganz trivial ist, möchte ich an dieser Stelle etwas von meiner Erfahrung an Euch weitergeben. Das erste Problem liegt bereits in dem 64-Bit System. Seiten wie php.net bieten leider nur 32Bit-PHP Pakete an. Ihr könnt Euren IIS per Console in den 32 Bit Betrieb zwingen, doch dann gefährdet Ihr den Betrieb bestehender .Net Seiten. Diese Lösung ist also nicht akzeptabel. Eure Suche hat an dieser Stelle ein Ende. Hier ist eine
64Bit PHP-Version, die wir im Folgenden Schritt für Schritt auf einem Windows Server 2003 mit IIS einrichten wollen.

Ladet euch die beigefügte Datei herunter und entpackt sie auf Eurem Server. Legt die Dateien bspw. in den Pfad C:\php\

In einem ersten Schritt konfigurieren wir den IIS:

  1. Öffnet den IIS-Manager
  2. Rechtsklickt auf die Webdiensterweiterungen und klickt auf neue Webdiensterweiterung hinzufügen…
  3. Gebt dort die Bezeichnung “PHP: HyperText Processor” ein und wählt als erforderliche Datei die php5isapi.dll aus dem gerade erstellten Verzeichnis aus. Wählt den neuen eintrag an und klickt auf Zulassen.
  4. Euer IIS ist nun prinzipiell in der Lage php zu interpretieren

Ich gehe davon aus, das ihr bereits ein neues Web in Eurem IIS-Manager eingerichtet habt, das nun php-Skripte abarbeiten können soll. Dieses Web müsst ihr auswählen und zu den Eigenschaften wechseln. Auch hier müssen einige Modifikationen vorgenommen werden.

  1. Wechselt auf den Reiter Basisverzeichnis
  2. klickt in den Anwendungseinstellungen auf Konfiguration
  3. klickt auf Hinzufügen und wählt wiederum die php5isapi.dll aus Eurem verzeichnis C:\php aus
  4. gebt der Erweiterung den Namen .php
  5. wählt den RadioButton “begrenzen auf” aus und tragt dort “POST,HEAD,GET” analog zu vielen anderen Einträgen ein
  6. Klickt auf OK

Euer Web ist nun in der Lage mit der Extension .php korrekt umzugehen. Tragt unter Dokumente noch die “index.php” ein und bringt sie in der Hierarchie nach ganz oben.

Damit ist die Konfiguration des IIS soweit abgeschlossen.

Damit Euer System die PHP-Ressourcen kennt, sind noch einige Umgebungsvariablen zu setzen:

  1. Fügt der Variable Path Euren Pfad zum php-Paket hinzu, in diesem konkreten Fall wäre das C:\php\
  2. Fügt dem System die Umgebungsvariable PHPRC hinzu und lasst Sie ebenfalls auf diesen Pfad zeigen

Umgebungsvariablen könnt Ihr übrigens mit einem Rechtsklick auf den Arbeitsplatz unter dem Reiter “erweitert” modifizieren.

Damit ist Euer Server fertig eingerichtet. Was es nun noch zu tun gibt, ist die Konfiguration Eures PHP über die php.ini

Wechselt dazu in den Pfad C:\php und öffnet die php.ini mit einem Texteditor Eures Vertrauens :)

Auch hier sind einige Modifikationen vorzunehmen wollt ihr beispielsweise eine MySQL unterstützung haben, und davon gehe ich ja mal aus:

  1. sucht den Eintrag extension_dir und lasst ihn auf den ext Ordner zeigen, also: C:\php\ext\ oder .\ext
  2. nun sucht ihr den Eintrag extension=php_mysql.dll und nehmt das “;” am Anfang der Zeile heraus, um die Unterstützung scharf zu schalten. Tragt ausser dem noch die Zeile extension=php_mysqli.dll ein, damit zusätzliche MySQL Funktionen unterstützt werden.

Dies soll nur eine Beispielmodifikation sein, die php.ini gibt da noch eine Menge mehr her. Doch das ist schon wieder ein Thema für sich.
So, nun sollte alles korrekt funktionieren. Gebt in der Console “iisrest” ein und probt es mit einem Zugriff auf eine phpinfo.php. Evtl. müsst ihr den Server auch einmal neu starten.


April 2007
M T W T F S S
    Oct »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Badge Farm

  • Powered by Redoable 1.0



3 Responses to “PHP und IIS auf einem 64 Bit Windows Server 2003”


  1. 1 Hertsch Jul 13th, 2007 at 1:08 pm

    Hallo

    danke für die ausführliche Anleitung.

    Leider kommt immer “PHP has encountered an Access Violation”

    Windows 2003 Server Enterprise x64
    SQL-Server 2005 x64
    IIS 6
    Intel Core2Duo 6600 2MB RAM

    //****************************
    Hallo Hertsch,

    dabei sollte es sich um ein Berechtigungsproblem handeln. Schau doch einmal nach, ob die entsprechenden Systembenutzer Zugriffsberechtigungen auf die benötigten Dateien haben.

    Viele Grüße,
    Kai

  2. 2 bitdevil Sep 24th, 2007 at 6:48 pm

    Nette Anleitung,

    nach dem ich herrausgefunden hatte wie der richtige Downloadlink heisst, dass das enthaltene phpisapi leider nicht funktioniert .. ;-)

    IIS-Meldung —> keine gültige 32 bit Anwendung

    CPU: AMD 64 x2

    Man kann per Registery 32bit isapi Plugins erlauben ..
    Wirklich schade das es noch kein 64 bit PHP gibt.

    Gruss
    Silvio

    *********************************
    Danke für Dein Feedback,

    das enthaltene php64-Bit ist bei mir so im Einsatz, es sollte also funktionieren.
    Für mich hört sich die Fehlermeldung eher so an, das Dein IIS auf 32-Bit geswitched ist und die 64-Bit Version nicht akzeptiert.
    Dabei ist zu bemerken das auch auf einem 64-Bit Server der IIS in einen 32-Bit Modus geschaltet werden kann.
    Dann würde er obige Meldung rausdrücken.

    Bester Gruß,
    Kai

  3. 3 Fabian Sempf Jan 27th, 2008 at 10:38 pm

    Hi!

    Vielen Dank für die Anleitung, ohne hätte ich das nie hinbekommen!

    Ich habe allerdings trotz allem noch ein paar Probleme. Ich kann verschiedene Extensions nicht nutzen. Zum Beispiel kommt bei gettext immer die Fehlermeldung „iconv.dll nicht gefunden“. Ich habe diese DLL bis jetzt nur als 32-Bit Version gefunden, wenn ich die nutze kommt der Fehler „php_gettext.dll ist keine zulässige Win32-Anwendung“.
    Ein paar andere Extensions, die ich gerne nutzen würde, sind gar nicht in deinem Packet drin, z.B. imap.

    Woher hast du eigentlich die 64-Bit PHP Version? Kann man davon auch mal neuere Versionen downloaden? Kann man die selber kompilieren (ich oute mich gerade als sehr unwissend, ich weiß)?

    Wäre nett, wenn du noch eine Idee zu dem DLL-Problem hast.

    Danke!!!
    Fabian

    ***********************************
    Hi Fabian,

    danke für Deinen Kommentar.

    Ich habe momentan leider nicht viel Zeit. Ich arbeite mich aber bei Gelegenheit mal in Deine Problematik ein und poste Dir was dazu.
    Falls Du schon vorher etwas findest, kannst Du gerne einen weiteren Kommentar hinterlassen.

    Schau auch einfach mal hier: http://fusionxlan.com/PHPx64.php

    Bester Gruß,
    Kai

Leave a Reply