IIS und PHP für Windows installieren • Aidex  • Kontakt  • Datenschutz
Intranet-Anwendungen sind Pro­gramme, die nur einem ge­schlos­senen Nutzer­kreis im loka­len Netz­werk bereit­gestellt wer­den. Die Dar­stel­lung er­folgt oft­mals in einem Browser. Das tech­nische Prin­zip ist dann wie bei einer Internet­seite, je­doch stam­men die In­halte nicht von außer­halb, son­dern von einem firmen­eigenen Server.

Die Vorteile einer Intranet-Anwendung im Browser sind, dass mehrere Nutzer gleich­zeitig mit der glei­chen Daten­bank arbei­ten kön­nen, und dass nicht auf jedem Com­puter ein Pro­gramm in­stal­liert wer­den muss und man des­halb vom Betriebs­system unab­hängig ist (z.B. Win­dows, Mac, Linux, evtl. Tablet/Pad oder Smart­phone). Und im Falle eines Pro­gramm-Updates ge­nügt es, die neue Ver­sion ein­mal auf dem zentra­len Ser­ver zu in­stal­lieren.

Wenn der Server ein Windows-Betriebs­system hat, kann man die zu Win­dows ge­höri­gen IIS (Inter­net Infor­mation Ser­vices) als Web­server-Soft­ware nutzen. Unter Linux wird hin­gegen meis­tens der NGINX oder der Apache HTTP Ser­ver ein­ge­setzt.
Die folgenden Abschnitte sind eine Anlei­tung zur Akti­vie­rung von IIS unter Win­dows und zum Ein­rich­ten von PHP.

Im Web-Segment ist PHP die am weites­ten ver­brei­tete Programmier­sprache, die auf dem Ser­ver läuft und ins­be­son­dere zur Er­zeu­gung dyna­mi­scher Web­seiten ge­nutzt wird. 78 % aller Web­seiten nut­zen PHP (Stand 2024). Ein PHP-Script ist ein Pro­gramm, das i.d.R. eine HTML-Seite er­zeugt und die Daten be­reit­stellt, die dem Be­nut­zer im Brow­ser als Ober­fläche ange­zeigt werden.

Webserver
IIS in Windows aktivieren

Die IIS (Internet Information Services) sind Bestand­teil von Win­dows. Werden sie in den Ein­stel­lun­gen akti­viert, küm­mert sich Win­dows um die Instal­la­tion und Updates.

Menüs in Windows 10 ...
Klicken Sie auf das Start-Menü > Einstellungen > Apps
> dort ganz unten: Programme und Features
> in dem weiteren Fenster: Windows-Features akti­vieren
> auswählen: Internet­informations­dienste

Außerdem sollten Sie Folgendes akti­vieren:
WWW-Dienste > Sicherheit > URL-Autori­sie­rung



Die URL-Autorisierung wird benötigt, um z.B. den äußeren Zugriff auf be­stimmte Unter­ordner sper­ren zu kön­nen. Bei Apache nutzt man dazu eine Konfi­gura­tions­datei namens ".htaccess", beim IIS ist es hin­gegen eine XML-Datei namens "web.config" im be­tref­fen­den Ordner. Dazu unten mehr.

Nachdem Sie Ihre Auswahl mit Ok be­stätigt haben, akti­viert Win­dows den IIS (Web­server) und legt ein Web-Root-Verzeich­nis auf Ihrer Fest­platte an, siehe C:\inetpub\wwwroot\

Dass der Webserver aktiv ist, kön­nen Sie prü­fen, in­dem Sie in Ihrem Web­browser ein­geben: http://localhost/ oder http://127.0.0.1/
PHP installieren

Laden Sie PHP für Windows von php.net herun­ter, unter
https://windows.php.net/download.
Es gibt keinen Installer, sondern eine .ZIP-Datei. Nehmen Sie NTS-Version (Non-Thread Safe), die für Win­dows IIS em­pfoh­len wird.

Entpacken Sie die ZIP-Datei in einen neuen Ordner, dessen Name (und ge­samter Pfad) kein Leer­zeichen ent­hal­ten darf. In der Doku­men­ta­tion wird des­halb der Ordner C:\PHP\ vor­ge­schla­gen. Bei einem deut­schen Win­dows, wo der Pro­gramme-Ordner "C:\Program Files" (mit Leer­zeichen) in "C:\Programme" über­setzt wird, kön­nen Sie auch C:\Programme\PHP\ nehmen (getes­tet).



Im entpackten PHP-Ordner finden Sie eine Datei namens "php.ini-production". Kopie­ren Sie die Datei und nen­nen Sie die Kopie in "php.ini" um. Bei Be­darf kön­nen Sie in der php.ini eigene Ein­stel­lun­gen vor­nehmen.

Der PHP-Ordner sollte nur mit Admin-Rechten be­schreib­bar sein (was im Pro­gramme-Ordner ge­geben ist), damit der Ord­ner nicht mani­pu­liert werden kann.

IIS für PHP konfigurieren

Abschließend muss dem IIS mit­geteilt wer­den, wo er den PHP-Ordner fin­det. Öffnen Sie dazu den IIS-Manager, indem Sie am Windows-Start­menü mit Rechts­klick 'Ausführen' wählen und dort "inetmgr" ein­geben.

Es öffnet sich das Verwaltungs­programm.
Klicken Sie im linken Be­reich auf Ihren Com­puter­namen. Wählen Sie dann im mitt­le­ren Be­reich "Handler­zuord­nungen". Wählen Sie im rech­ten Be­reich: "Modul­zuord­nung hin­zu­fügen".



Setzen Sie
  • "Anforderungspfad": *.php
  • "Modul" auf FastCgiModule
  • "Ausführbare Datei" auf den Pfad zur Datei php-cgi.exe in Ihrem PHP-Ordner, z.B. C:\Programme\PHP\php-cgi.exe
  • "Name" z.B. auf "PHP" (oder beliebig).
  • Klicken Sie auf Ok,
  • und dann auf Ja, wenn Sie gefragt werden, ob Sie eine FastCGI-Anwendung erstellen möchten.
PHP testen

Um auszuprobieren, ob PHP und der IIS Web­server richtig zusam­men­arbei­ten, brau­chen Sie eine .php-Datei, die im Web-Root ab­ge­legt ist. Erstel­len Sie z.B. eine Datei "phpinfo.php" mit fol­gen­dem Inhalt:
<?php
  phpinfo();
?>


Speichern Sie die Datei in: C:\inetpub\wwwroot\
Sie können die Datei dann ein­fach im Browser auf­rufen:
http://localhost/phpinfo.php

Anstelle des Quellcodes sollten Sie eine aus­führ­liche Seite an­ge­zeigt be­kom­men, die alle Ein­stel­lun­gen von PHP auf­listet.

Ersatz für .htaccess beim IIS

Im Apache Webserver ist es üblich, dass in einzel­nen Ordnern eine Konfi­gura­tions­datei namens ".htaccess" hinter­legt wer­den kann, die steuert, welche Eigen­schaf­ten der Ordner hat.
Hingegen muss für den Windows IIS eine XML-Datei namens "web.config" in den be­tref­fen­den Ordner ge­speichert wer­den, um ihn indi­vi­duell zu konfi­gu­rie­ren.

"web.config" Datei, um Zugriffe von außen zu unter­binden ... (das Fol­gende ent­spricht "deny from all" in einer .htaccess-Datei)

<configuration>
  <system.webServer>
    <security>
      <authorization>
        <remove users="*" roles="" verbs="" />
        <add accessType="Deny" users="*" />
      </authorization>
    </security>
  </system.webServer>
</configuration>


Da wir hier die PHP-Instal­la­tion be­schrie­ben haben, ist es auch inte­res­sant, Standard­datei­namen defi­nie­ren zu kön­nen, die beim Ab­ruf einer bloßen Ordner-Adresse ge­sucht wer­den sollen.

"web.config" Datei, um index.php als Default Document zu setzen ...

<configuration>
  <system.webServer>
    <defaultDocument>
      <files>
        <clear />
        <add value="index.php" />
      </files>
    </defaultDocument>
  </system.webServer>
</configuration>

Anleitung / Text: Jörg Rosenthal, Aidex GmbH, 2024