E-Mail Archivierung

Beratung

Branchenlösungen

Betreuung von Netzwerken

Domainservice

Domainangebote

E-Mail Policy

Firmenlösungen

Hosting

Kontakt

Lexikon

Partner

PC-Notdienst

Pflichtenheft

Projektmanagement

Suchmaschinenoptimierung

Softwareentwicklung

Schulung

Webdesign

Webhosting

User Help Desk

Projektanfrage

Zertifizierungen

AGBs Hosting

AGBs Dienstleistungen

Impressum



phrixos-it News
  Ihr IT-Dienstleister in Augsburg und München
 

PHP und IIS


Begriffsart: Anleitung

Ausgeschrieben:
Übersetzung:

Bedeutung:
Beim IIS wird PHP nicht automatisch mit installiert. Im Internet fand sich folgene Anleitung, die sehr gut funktioniert. Hinweis: in meiner Installation (PHP Installationspaket) fehlte die php5isapi.dll . Lies sich jedoch im Internet finden und problemlos nachinstallieren.

Hier die Anleitung:


  • ein installierter IIS-Sever Version 6.0 (W2K3)
  • Die neuste PHP Version (stable) als ZIP-File. Downloaden unter: http://www.php.net/downloads.php
  • Systemvorkenntnisse
  • Hinweis: Dieses Tutorial bezieht sich auf die PHP Version 5.2.3 unter IIS 6.0 auf einem Windows Server 2003 mit SP1 als DC oder Clientserver in einem AD. Weiter werden in diesem Tutorial die Anbindungen von PHP an einen MSSQL- und einen MySQL-Server erläutert.

    Wichtig: Bitte unbedingt das ZIP-File verwenden. Mit dem Installer habe ich NUR schlechte Erfahrungen gemacht!

    Verzeichnisse anlegen

    Zuerst legen wir eine Verzeichnisstruktur für den PHP-Webserver an:
    - C:\Server\htdocs
    - C:\Server\php5
    - C:\Server\includes
    - C:\Server\session
    - C:\Server\tmp

    Diese Verzeichnisse müssen von Hand angelegt werden.

    Hinweis: Selbstverständlich können auch andere Verzeichnisstrukturen verwendet werden, allerdings wird dieses Tutorial auf dieser Struktur aufbauen.

    PHP Installieren

    Das installieren von PHP ist denkbar einfach:

    • Das heruntergeladen ZIP-File wird nach C:\Server\php5 entpackt
    • Die Datei php.ini-dist muss kopiert und in php.ini umbenannt werden (es ist immer sinnvoll die php.ini-dist zu kopieren und nicht nur umzubenennen, da man sonst im Notfall das Original nicht mehr zur Verfügung hat).

    Jetzt haben wir PHP an und für sich installiert, lediglich das System weiss noch nichts davon, darum müssen wir noch zwei Umgebungsvariablen richtig setzen:

    • Die Variable Path wird um den Eintrag: C:\Server\php5 ergänzt, damit Windows die eigentlichen PHP DLLs überhaupt finden kann, ohne dass diese in den Systemordner verschoben werden müssen.
    • Die Variable PHPRC muss mit dem Wert C:\Server\php5 neu hinzugefügt werden, damit Windows die php.ini finden kann.

    Hinweis: Es ist auch möglich keine Umgebungsvariablen zu setzen, sondern stattdessen alle PHP DLLs nach C:\Windows zu verschieben. Allerdings wäre dies eine sehr unschöne Methode!

    PHP INI Einstellungen

    Jetzt beginnt ein wichtiger Schritt: Die Konfiguration von PHP selbst und das Laden der Zusatzmodule um eine Verbindung zu einem MSSQL- und / oder MySQL-Server herstellen zu können.

    Um die php.ini zu editieren kann diese in einem einfachen Texteditor (Notepad) geöffnet werden.
    Grundeinstellungen:

    Variable Alte Einstellung Neue Einstellungen
    include_path =
    (include_path variablen gibt es mehrere, daher ist es sinnvoll die unter „Windows: "\path1;\path2“ zu verwenden)
    ".;c:\php\includes" "C:\Server\includes"
    extension_dir = "./" "C:\Server\php5\ext"
    upload_tmp_dir = - "C:\Server\tmp"
    session_save_path = "/tmp" "C:\Server\session"

    Wichtig: Dies sind lediglich die Grundeinstellungen, welche benötigt werden, damit PHP auf IIS 6.0 läuft, allerdings wurde keinerlei Bezug auf die Sicherheit von PHP genommen!
    Daher: Für Testumgebungen ist diese Konfiguration zweckmässig, für den Produktivbetrieb aber keinesfalls!

    Dynamic Extensions:

    PHP erlaubt es Dynamic Extensions zu laden, um weiter Funktionen zu Verfügung zu stellen wie z.B. Datenbankverbindungen oder Grafikbibliotheken.
    Genau genommen ist eine Dynamic Extension nichts anderes als eine zusätzlich Klassenbibliothek.

    Für unseren fall benötigen wir lediglich zwei Extensions:

    • php_mssql.dll
    • php_mysql.dll

    Geladen werden die Extensions durch das Entfernen des führenden ; unter „Dynamic Extensions“ in der php.ini.

    Wichtig: Je nach Anwendung sollten weitere Extensions geladen werden.

    AD Benutzer erstellen

    Um die IIS-Zugriffsberechtigungen nicht einem Standard User überlassen zu müssen sollte dafür ein eigener Benutzer in der Domäne erstellt werden.
    In diesem Beispiel nennen wir den User "Webserver". Die Einstellungen sollten so sein, dass das Passwort nie abläuft und nicht geändert werden kann.

    Hinweis: Wenn Sie keinen AD-Benutzer erstellen möchten, dann lassen Sie dieses Kapitel, das Kapitel „NTFS Berechtigungen setzen“ und den entsprechenden Teil im Kapitel „IIS Einstellungen“ einfach aus. Sicherheitstechnisch ist es allerdings sinnvoll einen eigenen AD-Benutzer zu erstellen!

    IIS Einstellungen

    So, nun kommen wir zum Kernpunkt unserer Installation – zur IIS Konfiguration.

    Konfigurationsschritte:

    • Als erstes erstellen wir eine neue Website mit dem Namen PHP Test.
    • Nun muss PHP als Allowed Webservice Extension hinzugefügt werden.
      • Dies machen wir unter > Webservice Extensions > Add a new Web service Extension.
      • Extension Name: PHP5
      • Required Files: C:\Server\php5\php5isapi.dll
      • Haken setzen bei Set extension status to Allowed.
    • Jetzt kümmern wir uns um die eigentlichen Website Einstellungen unserer PHP Test Website, welche benötigt werden, um die Website PHP-lauffähig zu machen. Dazu gehen wir in die Einstellungen unter > Home Directory
      • Local Path: C:\Server\htdocs
      • Haken setzen bei: Read, Log visits und Index this resource
      • Execute Permissions: Scripts only
      • Bei Configuration .php als bekannte Dateieindung hinzufügen mit Verweis auf : C:\Server\php5\php5isapi.dll
    • Unter > Documents alle Dokumente entfernen und index.html und index.php wieder hinzufügen, damit IIS die index.php erkennt.
    • IIS neu starten!
    • Jetzt sollte IIS in der Lage sein PHP zu parsen!

    Sicherheitskonfiguration:
    - Unter > Directory Security > Authentification and access control > Edit, bei Enable anonymous access den Haken setzen und den oben erstellten Benutzer eingeben.
    - Jetzt versucht IIS mit diesem Benutzer auf die Ressourcen zuzugreifen.

    NTFS Berechtigungen setzen

    Da unser Benutzer im IIS eingestellt ist, benötigt er noch die entsprechenden Berechtigungen, um überhaupt auf die Ressourcen zugreifen zu können.
    Die Berechtigungen für unseren User setzen wir wie folgt:

    Pfad Berechtigungen
    C:\Server Read, Execute
    C:\Server\htdocs Read, Execute, Write, Change*
    C:\Server\php5 Read, Execute
    C:\Server\includes Read, Execute, Write, Change
    C:\Server\session Read, Execute, Write, Change
    C:\Server\temp Read, Execute, Write, Change

    *Nur benötigt wenn z.B. ein Fileupload o.ä. realisiert werden soll (Sicherheitslücke!!!).

    Wichtig: Der Benutzer Everyone bzw. Jeder benötigt in C:\Server\php5 unbedingt Read und Execute Rechte, sonst kann IIS das PHP-Modul nicht laden, da dieses geladen wird, bevor IIS den eingetragenen Benutzer verwendet (!)

    MSSQL – Verbindung

    Um PHP mit einem Microsoft SQL Server verwenden zu können, muss die Datei ntwdblib.dll aus dem Verzeichnis C:\Server\php5 nach C:Windows/System32 kopiert werden.

    Wichtig: Die von PHP mitgelieferte ntwdblib.dll funktioniert of nicht richtig, daher einfach das Web durchsuchen und die Datei neu herunterladen bis es klappt!

    Hinweis: IIS muss neu gestartet werden!

    MySQL – Verbindung

    Die Anbindung von PHP an MySQL Datenbanken ist genau so zu handhaben wie die Anbindung an MSSQL Datenbanken – einfach mit einer anderen DLL.
    Kopiert wird hier die Datei libmysql.dll von C:\Server\php5 nach C:Windows/System32

    Hinweis: IIS muss neu gestartet werden!

    Informatives

    PHP auf IIS?
    Viele denken, dass PHP zu Apache und ASP zu IIS gehört. Dies ist allerdings nicht unbedingt so und auch performancetechnisch sind keine grossen Unterschiede zwischen PHP auf Apache oder IIS zu bemerken (allerdings nur, wenn PHP per isapi eingebunden wird).

    Updaten?
    Die PHP Installation sollte regelmässig aktualisiert werden, um Sicherheitslücken frühzeitig zu schliessen. Dazu wird einfach die neuste Version von PHP heruntergeladen und nach C:\Server\php5 entpackt! Aber vorher erst eine Sicherheitskopie erstellen, damit der Server nicht lange off ist, wenn es nicht klappen sollte!

    Isapi?
    Isapi ist eine Form wie zusätzliche Module zu IIS geladen werden können. Ausgeschrieben bedeutet es: internet service application programmer interface und ermöglicht eine sehr schnelle und effiziente Bearbeitung von Requests, welche IIS-fremde Module ansprechen (in unserem Tutorial natürlich PHP).
    Die benötigten Isapi-DLLs werden beim starten von IIS in den RAM geladen. Weiter werden bis zu 14 Threads pro Prozessor für IIS inkl. Isapi zur Verfügung gestellt, welche nach dem Starten in den Leerlauf fallen bis ein Request kommt, diesen abarbeiten, um danach wieder in den Leerlauf zu fallen.
    Auf diese Weise hat man immer etwas Last auf dem Webserver, auch wenn er gerade gar nichts macht. Allerdings können ankommende Requsts sofort bearbeitet werden, ohne dass die Zusatzmodule erst noch geladen werden müssen.
    Auf diese Weise erhöht man die Antwortzeit des Webservers und die maximale Anzahl an Usern, welche „Gleichzeitig“ online sein können um ca. 900% im Vergleich zu CGI Applikationen (z.B. Perl oder PHP als CGI in IIS integriert)!


    Mit freundlicher Genehmigung von phpperformance.de

    PHP 5.2.x auf IIS 6.0 installieren⇗


     
         
    Impressum | Website bei Suchmaschinen anmelden | Seite weiterempfehlen | Pressemitteilungen | Stellen | Suche