Fügen Sie PHP unter IIS 7 Schreibrechte hinzu

Lesezeit: 3 Minuten

Ich brauche ein PHP-Skript, um Schreibrechte in einem Verzeichnis zu haben. PHP 5.3 läuft als FastCGI unter IIS 7 mit Windows Server 2008 als OP. In meinen PHP-Fehlerprotokollen wurde mir “Erlaubnis verweigert”, wenn das Skript versucht, eine Datei zu schreiben.

Wie kann ich das regeln? Ich habe versucht, IIS_IUSR und IUSR_myservername alle Rechte zu geben (mit einem Rechtsklick auf meinen Ordner), aber es hat nicht funktioniert.

Jede Hilfe wäre sehr dankbar,

Grüße,

Julien

Benutzer-Avatar
Tomfumb

Ich habe das gleiche Setup und muss Schreibrechte erteilen an:

  • IUSR
  • IIS AppPool\<<AppPoolName>>

  • Vielen Dank, es funktioniert, wenn ich IUSR eine Schreiberlaubnis gebe!

    – JuCachalot

    4. Mai 2011 um 17:40 Uhr

  • Sie müssen auch eine tun iisreset damit php neu geladen wird.

    – svandragt

    2. November 2012 um 16:30 Uhr

  • @svandragt, denn wenn Ihre Anwendung mit “Anwendungspoolidentität” ausgeführt wird, ist dies das Konto, das sie verwendet

    – Tomfumb

    6. Januar 2014 um 17:05 Uhr

  • In meinem Fall war es nicht erforderlich, iisreset durchzuführen, nur die Erteilung der Schreibberechtigung an IUSR hat den Zweck erfüllt.

    – Parijat

    26. Juli 2015 um 9:49 Uhr


  • <> könnte DefaultAppPool sein

    – dotnetrocks

    28. März 2019 um 12:52 Uhr

Eigentlich ist es etwas komplizierter.

Zunächst muss auf der betreffenden Website eine einfache PHP-Datei erstellt werden. (Es ist wichtig, die Datei auf der betreffenden Website zu erstellen, da jede Website andere Einstellungen haben kann.) Der Inhalt dieser Datei sollte sein:

<?php var_dump(ini_get('fastcgi.impersonate')); ?>

Navigieren Sie mit einem Browser zu dieser Datei.

** Fall 1 **

Wenn Ihr Browser anzeigt:

string(1) "1"

Dann müssen Sie den folgenden Befehl ausführen (Sie müssen “Default Web Site” durch den Namen ersetzen, den Sie Ihrer Website in IIS gegeben haben):

%windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^
/section:anonymousAuthentication

Sie erhalten eine Antwort, die so aussieht:

<system.webServer>
  <security>
    <authentication>
      <anonymousAuthentication enabled="true" userName="IUSR" />
    </authentication>
   </security>
</system.webServer>

Die Informationen, nach denen Sie suchen, sind der Wert der username Attribut der anonymousAutthentification Schild.

  • Wenn dieser Wert nicht leer ist, ist sein Inhalt der Name des Benutzers, dem Sie Schreibrechte erteilen müssen.
  • Wenn dieser Wert leer ist oder das Attribut einfach fehlt, müssen Sie Schreibberechtigungen erteilen IIS AppPool\AppPoolName (Ersetzen Sie “AppPoolName” durch den Namen des Anwendungspools Ihrer Website).

** Fall 2 **

Wenn Ihr Browser anzeigt:

string(1) "0"

Sie müssen Schreibrechte erteilen IIS AppPool\AppPoolName (Ersetzen Sie “AppPoolName” durch den Namen des Anwendungspools Ihrer Website).

  • Vielen Dank für die Einzelheiten. Ich bin immer etwas nervös, wenn eine Antwort nur “x” ist, ohne zu sagen, wie man es herausfindet oder warum es “x” ist.

    – Stefan R

    9. Februar 2017 um 16:51 Uhr

  • Wo soll der Befehl ausgeführt werden? In cmd oder in einer bestimmten Shell?

    – Lahar Schah

    23. Februar 2017 um 18:14 Uhr

  • @tristan Charbonnier Tut mir leid, einen alten Thread anzustoßen, aber weißt du, wie man die App-Pool-Berechtigungen für AD und Netzlaufwerke macht?

    – Craig B

    26. Februar 2017 um 22:55 Uhr

  • Das braucht mehr Upvotes! …nach 4 Tagen Suche im Zusammenhang mit “Fehlender temporärer Ordner”. Problem in WordPress, ich habe endlich verstanden, dass es der IIS AppPool ist, der eine Berechtigung für den PHP-Ordner upload_tmp_dir benötigt, nicht für WP_TEMP_DIR. danke Kumpel!

    – Sanjeev

    7. August 2020 um 14:11 Uhr

Du musst geben PHP Schreibberechtigung, nicht IIS. Dies bedeutet, dass das Benutzerkonto, auf dem PHP ausgeführt wird, eine Berechtigung benötigt (wahrscheinlich das gleiche, auf dem IIS ausgeführt wird).

  • Wie können Sie feststellen, auf welchem ​​Konto PHP ausgeführt wird?

    – Dummkopf

    20. Dezember 2013 um 15:43 Uhr

  • php-cgi.exe wird aus w3wp.exe hervorgehen und denselben Kontext haben. Wie tomfumb oben sagt, gewähren Sie dem Windows-Sicherheitskontext ‚IIS APPPOOL\MyAppName‘ Schreibzugriff auf den betreffenden Ordner.

    – James Grün

    28. Juli 2014 um 1:36 Uhr

  • Um genau zu wissen, welchem ​​Benutzer Sie Schreibberechtigungen erteilen müssen, überprüfen Sie meine Antwort.

    – Tristan CHARBONNIER

    16. August 2015 um 10:18 Uhr

1258050cookie-checkFügen Sie PHP unter IIS 7 Schreibrechte hinzu

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy