
Ich habe eine Laravel 3.2-App erhalten, die in der Produktion läuft und auf einen IIS 7.5-Server verschoben werden soll. Ich habe die Produktions-php.ini so eingestellt, dass sie mit 5.4.37 funktioniert und nicht über einen 500-Fehler hinauskommt, damit ich Fehler beheben kann, die getan werden müssen, damit sie ausgeführt wird.
Durch das Setzen von display_errors auf display-startup_errors = on und das Deaktivieren von benutzerfreundlichen Warnungen auf dem Server im MSIE erhalte ich endlich eine Rückmeldung:
file_put_contents(C:\inetpub\wwwroot\HMarketing\storage\logs/2015-03-03.log): failed to open stream: Permission denied
Es kann kein Protokoll in die Protokolldatei von Larvel geschrieben werden. OK, beim Googeln finde ich heraus, dass IIS eine IIUSR-Rolle verwendet, der Lese- und Schreibrechte erteilt werden sollten.
Ich wühle mich in die Authentifizierung für anonyme Benutzer und stelle fest, dass sie auf „IUSR“ eingestellt ist. Das scheint anders zu sein als die MS-Hilfeseiten, die „IIUSR“ vorschlagen. Dieser Server bedient jedoch aktiv andere Produktions-Apps und überprüft die Berechtigungen anderer Arbeits-Apps. Ich stelle fest, dass sie denselben „IUSR“-Satz haben. Vielleicht gibt es also ein Äquivalent zu IIUSR?
Da ich mich abmühe und IIS lerne, bin ich laut meinen Google-Suchen in einer Sackgasse. Welchen nächsten Schritt sollte ich unternehmen, um zu beheben, warum ich Laravel nicht dazu bringen kann, seine Protokolle anzuzeigen?
mcrypt is enabled
mb_string is enabled
Antwort1
Dies ist vielleicht nicht die richtige Vorgehensweise, aber im Windows Explorer habe ich die Eigenschaften des Speicherordners, die Registerkarte „Sicherheit“, aufgerufen und die Option „Berechtigungen übernehmen“ deaktiviert. Anschließend habe ich dem IUSR(site)-Benutzer die Möglichkeit HINZUFÜGT, in den Ordner zu schreiben. Ich hoffe, das ist nichts Schlimmes, aber zumindest konnte ich so diesen Fehler umgehen. Ich wäre froh, wenn mir jemand, der mehr weiß als ich, den sichersten Weg zeigen würde, diesen Fehler zu umgehen.
Antwort2
Bei uns war das Problem behoben, als wir die .\IIS_IUSRS
Gruppe anstelle von verwendet haben IUSR
. Seltsamerweise IUSR
hatte das vorher funktioniert.