PHP 7.x auf Windows Server 2016 mit IIS installieren, Schritt für Schritt

Installieren wir ein aktuelles PHP (7.2 in diesem Fall) auf einem Windows Server 2016 in 64bit. Da wir den IIS nutzen und ein lokales CGI-Script-Handling einrichten wollen, nutzen wir die NTS (Non Thread Safe) Variante.

Auf die Unterschiede zwischen „Thread Safe“ und „Non Thread Safe“ gehen wir hier nich genauer ein. Schnelle Admins wissen aber:

  • Apache + LoadModule: Thread Safe
  • Apache + FastCGI: Non-Thread Safe
  • IIS: Thread Safe
  • IIS + FastCGI: Non-Thread Safe « Diese Anleitung

Installation von PHP 7.2 auf Windows Serrver 2016 (IIS)

  1. Windows Server 2016 installieren+updaten, IIS und Tools hinzufügen. Die Installation dauert einen Moment. Der Telnet-Client ist nicht zwingend notwendig, aber oft hilfreich.
    PS C:\> Import-Module servermanager
    PS C:\> Install-WindowsFeature -name web-server,web-cgi –IncludeManagementTools
    PS C:\> Add-WindowsFeature telnet-client
  2. PHP herunterladen und installieren: https://windows.php.net/download/. „VC15 x86 Non Thread Safe„. Wir empfehlen 32bit (x86) wegen der Extensions, es gibt noch nicht alle Extensions in x64. Jetzt grade aktuell war PHP in der Version 7.2.9.
  3. Visual C++ 2015 Runtime Update 3 RC (oder auch gleich 2017) in x86 und x64 herunterladen und installieren: https://www.microsoft.com/DE-de/download/details.aspx?id=52685
  4. Die PHP ZIP-Datei  (als Administrator) entpacken (z.B. „%Program Files (x86)%\PHP“)
  5. Kopieren der „php.ini-development“ in die „php.ini“
    PS C:\Program Files (x86)\php-nts-x86> Copy-Item .\php.ini-development .\php.ini2
  6. PHP.ini bearbeiten
    error_log = C:\inetpub\logs\php_errors.log
    max_execution_time = 60
    max_input_time = 90
    memory_limit = 256M
    default_charset = "UTF-8"
    upload_tmp_dir = "C:\inetpub\temp\IIS Temporary Compressed Files"
    upload_max_filesize = 16M
    allow_url_fopen = Off
    extension=php_wincache.dll
  7. Den PHP Interpreter zur System-PATH-Variable hinzufügen
    1. Systemeigenschaften > Erweitert > Umgebungsvariablen > Systemvariablen > Eintrag „Path“ bearbeiten > Neu > <PFAD ZU PHP> einfügen > OK > OK
  8. „Wincache Extensian for PHP“ 2.0 in 64bit herunterladen: https://www.iis.net/downloads/microsoft/wincache-extension (Aktuell: „wincache-2.0.0.8-dev-7.1-nts-vc14-x64.exe“) und in den PHP-Pfad nach \ext entpacken
  9. PHP im IIS konfigurieren
    1. „Internetinformationsdienste (IIS)-Manager“ starten > Links den Server auswählen (oberste Ebene) > „Handlerzuordnungen“ öffnen
    2. „Modulzuordnung hinzufügen“:
      1. Anforderungspfad: *.php
      2. Modul: FastCgiModule
      3. Ausführbare Datei: „C:\Program Files (x86)\<PHP-PFAD>\php-cgi.exe“
      4. Name: PHP
      5. Einschränkungen: „Handler nur bei folgender Zuordnung aufrufen“ auf „Datei oder Ordner“ stellen
  10. Standartdokument(e) hinzufügen
    1. Internetinformationsdienste (IIS)-Manager“ starten > Links den Server auswählen (oberste Ebene) >Standdartdokument
    2. Hinzufügen > „index.php“
  11. Schon fertig 🙂

Installation von Microsoft SQL Server Treibern für PHP unter Windows/IIS

  1. Download der „Microsoft PHP drivers Version for SQL Server“ (aktuell 7.2): https://github.com/Microsoft/msphpsql/releases
  2. Entpacken von x86\php_pdo*.dll nach <PHPPFAD>\ext
  3. Bearbeiten der PHP.ini
    extension=php_sqlsrv_72_nts.dll
  4. Download und Installation der „Microsoft® ODBC Driver 17 for SQL Server“ in 64bit: https://www.microsoft.com/de-DE/download/details.aspx?id=56567
  5. Webserver neustart mit „IISRESET“
  6. Fertig 🙂

Ob das jeweilige Modul geladen werden konnte, lässt sich an der Kommandozeile mit „php -m“ recht gut überprüfen.

Testen der Installation von PHP auf IIS

In C:\inetpub\wwwroot eine Datei „phpinfo.php“ anlegen mit dem folgenden Inhalt:

<?php
    phpinfo();
?>

Und aufrufen von http://<SERVERNAME>/phpinfo.php

 

WSUS Event 7032 („System.Net.Sockets.SocketException — Der angegebene Host ist unbekannt“) nach Umbenennen des Servers

Problem

Nach dem Umbenennen eines WSUS-Servers funktioniert die WSUS-Konsole (das MMC Snap In) nicht mehr richtig. Man bekommt beim Start der „Windows Update“ MMC nur diese wenig hilfreiche Fehlermeldung nur zu sehen „Dieses Snap-in reagiert nicht„.

WSUS - Dieses Snap-In reagiert nichtAußerdem verrät das Ereignisprotokoll dem geneigten Leser noch in etwa folgendes:

Ereignis-ID: 7032

Die WSUS-Verwaltungskonsole konnte über die Remote-API keine Verbindung mit dem WSUS-Server herstellen.

Stellen Sie sicher, dass der Update Services-Dienst, IIS und SQL auf dem Server ausgeführt werden. Starten Sie IIS, SQL und den Update Services-Dienst erneut, wenn das Problem weiterhin besteht.

System.Net.Sockets.SocketException — Der angegebene Host ist unbekannt

Source System

Stack Trace:
bei System.Net.Dns.GetAddrInfo(String name)
bei System.Net.Dns.InternalGetHostByName(String ….

 

Lösung

Die MMC speichert in ihren lokalen Einstellungen unter anderem den (alten) Servernamen. Den, der bei der Installation vergeben wurde. Man löscht alle WSUS-MMC-Settings durch das entfernen dieser Datei:

%USERPROFILE%\appdata\roaming\microsoft\mmc\wsus.*

Danach startet die Konsole wieder wie gewohnt.

Auf (USB-)Datenträger kann nicht geschrieben werden

Wie auch immer das passiert ist: Auf einer nagelneuen USB-Festplatte wollte ein Windows-Server nicht schrieben. Stellt sich raus, das Laufwerk ist schreibgeschützt.

Schreibschutz von Festplatten unter Windows entfernen:

diskpart

als Administrator ausführen und mit

list disk

Die Nummerierte Liste der Laufwerke ausgeben.

select disk #NUMMER

wählt das Laufwerk und

attributes disk clear readonly

entfernt das Schribschutz-Attribut. „Exit“ schliest DISKPART wieder.

Project oder Visio aus Volumenlizenz oder Retail zusammen mit Office 365 installieren

Problem

Bei dem Versuch Visio, Project oder andere klassische Office-Tools zusammen mit einem frisch installierten Office 365 („Klick-and-Run“ Setup) zu nutzen erscheint beim Setup die Fehlermeldung:

Wir sind auf ein Problem getoßen

Beim Office Klick-und-Los-Installer ist leider ein Problem aufgetreten, weil auf Ihrem Computer die folgenden, auf dem Windows-Installer basierten Office-Programme installiert sind:
Microsoft Office Profssional Plus 2016 Klick-und-Los und Windows Installer-Editionen von Office-Programmen können in dieser Version nicht parallel installiert werden …

Lösung

Eine Installation von Windows-Installer Dateien zusammen mit Click-to-Run Produkten ist offiziell nicht unterstützt. Die Mischung der Lizenzierungsformen (nicht Setup-Dateien!) funktioniert aber sehr wohl – man muss nur die passende Installation nutzen.

Dieser Trick macht die Installation möglich, ändert aber nicht die Lizenzform. Man erhält also keine Office365-typischen Updates für das Produkt. Weiterhin gibt es nur „normale“ Patches.

  1. Download des Office Deployment Tools (http://go.microsoft.com/fwlink/p/?LinkID=626065)
  2. Erstellen einer für Visio/Project passenden config.xml
    1. config.xml Beispiele liegen dem Setup nach dem auspacken bei
    2. Meistens muss nur die „Produkt ID“ angepasst werden
    3. Alle möglichen Product-IDs gibt’s direkt bei Microsoft
    4. Die restliche Konfiguration enfernen
  3. Anwendung mit setup.exe /download MEINNAME.xml (setup.exe aus dem Deployment Tool) herunterladen
  4. Anwendung mit setup /configure MEINNAME.xml (ebenfalls das Deployment Tool) installieren
  5. Anwendung starten und mit Ihrem jeweiligen Lizenzschlüssel aktivieren