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
Ich habe das gleiche Setup und muss Schreibrechte erteilen an:
IUSR
IIS AppPool\<<AppPoolName>>
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).
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).