Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • DownloadDownload
  • PrintPrint
Share this Page URL
Help

4. Konfigurieren von PHP > Einrichten unterschiedlicher PHP-Versionen

Einrichten unterschiedlicher PHP-Versionen

Die Verwendung von PHP über FastCGI ermöglicht es, dass unterschiedliche PHP-Versionen am selben Server eingesetzt werden, wenn gewünscht sogar in derselben Site. Möglich wird das, indem für unterschiedliche Pfade verschiedene Handlerzuordnungen zum Einsatz kommen.

Im Folgenden wird beschrieben, wie Sie PHP-Version 5.2 zusätzlich zu PHP-Version 5.3 installieren können. Die Anleitung lässt sich analog auf andere PHP-Versionen übertragen. Die Schritte gehen eine manuelle Installation durch, da eine Installation unterschiedlicher PHP-Versionen über den Webplattform-Installer (derzeit) nicht möglich ist.

Installieren der neuen PHP-Version

Als Erstes installieren Sie die neue PHP-Version wie folgt:

  1. Öffnen Sie die Website http://windows.php.net/download/.

  2. Laden Sie die aktuelle PHP-Version 5.2.x (zum Zeitpunkt des Buchdrucks: 5.2.13) als Zip-Archiv herunter. Wählen Sie die Variante VC6 x86 Non Thread Safe aus.

  3. Entpacken Sie das Zip-Archiv in einen Ordner Ihrer Wahl. Im Buch wird im Folgenden der Ordner C:\PHP_5_2 verwendet.

  4. Kopieren Sie die Datei C:\PHP_5_2\php.ini-recommended nach C:\PHP_5_2\php.ini.

  5. Öffnen Sie die Datei C:\PHP_5_2\php.ini mit einem Editor und setzen Sie die folgenden Konfigurationsoptionen wie angegeben:

    date.timezone = "Europe/Berlin"
    cgi.force_redirect = 0

Konfigurieren der Handlerzuordnung

Im nächsten Schritt geht es darum, die Handlerzuordnung zu konfigurieren. Die Konfiguration erfolgt auf der Ebene (Site, Anwendung, virtuelles Verzeichnis, Unterordner), die Ihre Anforderungen vorgibt.

Konfiguration mit IIS-Manager

Gehen Sie wie folgt vor, um die Handlerzuordnung in IIS-Manager zu setzen:

  1. Öffnen Sie IIS-Manager und wählen Sie das gewünschte Element im Bereich Verbindungen aus.

  2. Wählen Sie das Feature Handlerzuordnungen im Arbeitsbereich aus.

  3. Gibt es schon eine Zuordnung für *.php, dann löschen Sie diese mit Aktionen/Entfernen.

  4. Erstellen Sie eine neue Zuordnung mit Aktionen/Modulzuordnung hinzufügen...

  5. Geben Sie die Werte für die Zuordnung in den Textflächen ein:

    • Anforderungspfad: *.php

    • Modul: FastCGIModul

    • Ausführbare Datei: C:\PHP_5_2\php-cgi.exe

    • Name: PHP 5.2 via FastCGI

  6. Über die Schaltfläche Einschränkungen... können Sie die Zuordnung optional einschränken.

  7. Bestätigen Sie Ihre Eingaben mit OK.

  8. Beantworten Sie die Frage nach dem Anlegen einer neuen FastCGI-Anwendung mit Ja.

Konfiguration von der Befehlszeile aus

Um die Handlerzuordnung von der Befehlszeile aus zu setzen, verwenden Sie folgenden Befehl:

appcmd set config /section:system.webServer/handlers <PFAD> /+[name='PHP_52_via_FastCGI',
modules='FastCgiModule',scriptProcessor='C:\PHP_5_2\php-
cgi.exe',verb='*',path='*.php',resourceType='File']

<PFAD> gibt den (virtuellen) Pfad des zu konfigurierenden Elements an, zum Beispiel »PHP Demo Site/ php52«.

Konfigurieren der FastCGI-Anwendung

Als letzter Schritt ist noch die FastCGI-Anwendung zu konfigurieren. Dabei ist es wichtig, den Pfad zur php.ini-Datei zu konfigurieren. PHP erlaubt verschiedene Wege, den Pfad zu setzen, im Folgenden wird der Weg über die Umgebungsvariable PHPRC gewählt.

Konfigurieren mit IIS-Manager

Bei Einrichtung der Handlerzuordnung über IIS-Manager wurde die FastCGI-Anwendung bereits erzeugt. Es ist nur noch notwendig, die Umgebungsvariable zu setzen. Gehen Sie dabei wie folgt vor:

  1. Öffnen Sie IIS-Manager und wählen Sie das Feature FastCGI-Einstellungen aus.

  2. Wählen Sie die passende FastCGI-Anwendung aus und klicken Sie auf Aktionen/Bearbeiten...

  3. Im erscheinenden Dialogfeld wählen Sie die Schaltfläche Umgebungsvariablen/Auflistung aus.

  4. Klicken Sie auf Hinzufügen und geben Sie im rechten Bereich im Textfeld Name PHPRC und im Textfeld Value den absoluten physikalischen Pfad zur php.ini-Datei an (C:\PHP_5_2\php.ini) und klicken Sie auf OK.

  5. Klicken Sie auf OK, um die Konfiguration abzuschließen.

Konfigurieren von der Befehlszeile aus

Um die FastCGI-Anwendung zu konfigurieren, führen Sie folgende Befehle aus:

  1. Anlegen der Anwendung:

    appcmd set config /section:system.webServer/fastCGI /+[fullPath='C:\PHP_5_2\php-cgi.exe']
  2. Setzen der PHPRC-Umgebungsvariable:

    appcmd set config /section:system.webServer/fastCgi /+"[fullPath='C:\PHP_5_2\php-
    cgi.exe'].environmentVariables.[name='PHPRC',value='C:\PHP_5_2\php-cgi.exe']"

Testen

Um die Einstellungen zu testen, können Sie entweder eine Datei mit dem Inhalt

<?php phpinfo() ?>

im gewünschten Verzeichnis anlegen und ausführen. Oder Sie können das Beispielprogramm aus Listing 4.4 verwenden.

<html>
<head><title>PHP Version</title></head>
<body>
<ul>
    <li><strong>PHP-Version:</strong> <?php echo phpversion(); ?></li>
    <li><strong>Pfad zu php.ini:</strong>
        <?php
        $inipath = php_ini_loaded_file();
        echo empty($inipath) ? 'Kein php.ini geladen' : $inipath;
        ?>
    </li>
    <li><strong>Physikalischer Skriptpfad:</strong> <?php echo __FILE__ ?></li>
</ul>
</body>
</html>

Listing 4.4 info.php: Information zu PHP-Version und php.ini-Pfad

Sie können in Folge nicht nur zwei unterschiedliche PHP-Versionen auf einem Server oder einer Site verwenden, es ist sogar möglich, dass Sie dasselbe PHP-Skript mit unterschiedlichen PHP-Versionen ausführen können. Dazu ist es notwendig, dass das auszuführende Skript über zwei unterschiedliche URLPfade zu erreichen ist, denen zwei verschiedene Handler zugeordnet sind. Gehen Sie dabei wie folgt vor:

  1. Richten Sie einen Pfad (Anwendung, virtuelles Verzeichnis oder Ordner) für die erste Handlerzuordnung für PHP-Version 5.3 ein (beispielsweise /php53).

  2. Richten Sie einen Pfad für die zweite Handlerzuordnung für PHP-Version 5.2 ein (beispielsweise /php52).

  3. Richten Sie jeweils ein virtuelles Verzeichnis in /php53 und /php52 ein, die auf denselben Ordner zeigen, in dem die PHP-Skripts liegen, die Sie ausführen lassen wollen.

Über den Pfad erkennt IIS, welche Handlerzuordnung gewählt werden soll, und damit welche PHP-Version ausgeführt wird. Die virtuellen Verzeichnisse zeigen aber auf denselben Ordner. Listing 4.5 demonstriert, wie das parallele Ausführen gezeigt werden kann, Abbildung 4.7 zeigt das Ergebnis.

<html>
<head><title>Zwei PHP-Versionen am gleichen Server</title></head>
<body>
       <h1>PHP 5.3</h1>
       <iframe src="php_5_3/php_x2/info.php" height="100" width="80%"></iframe>
       <h1>PHP 5.2</h1>
       <iframe src="php_5_2/php_x2/info.php" height="100" width="80%"></iframe>
</body>
</html>

Listing 4.5 Paralleles Ausführen eines Skripts mit unterschiedlichen PHP-Versionen

Paralleles Ausführen eines PHP-Skripts mit unterschiedlichen PHP-Versionen

Abbildung 4.7 Paralleles Ausführen eines PHP-Skripts mit unterschiedlichen PHP-Versionen