
Recebi um aplicativo Laravel 3.2 que está trabalhando em produção para migrar para um servidor IIS 7.5. Eu configurei o php.ini de produção para que funcione com 5.4.37 e não consiga superar um erro 500 para que eu possa solucionar o que precisa ser feito para que ele funcione.
Configurando display_errors em display-startup_errors = on e o MSIE para desligar avisos amigáveis no servidor, finalmente recebo algum feedback:
file_put_contents(C:\inetpub\wwwroot\HMarketing\storage\logs/2015-03-03.log): failed to open stream: Permission denied
Ele não pode gravar um log no arquivo de log do larvel. OK, pesquisando no Google, descobri que o IIS usa uma função IIUSR que deve receber leitura e gravação.
Eu procuro Autenticação para usuários anônimos e descubro que ela está definida como "IUSR". Isso parece diferente das páginas de ajuda da MS que sugerem "IIUSR". No entanto, este servidor está servindo ativamente outros aplicativos de produção e verificando as permissões de outros aplicativos em funcionamento. Acho que eles têm o mesmo "IUSR" definido, então talvez haja um equivalente ao IIUSR?
Sendo que estou lutando para aprender IIS, estou em um impasse com base nos meus Googles. Qual próxima etapa devo usar para solucionar o motivo pelo qual não consigo fazer com que o laravel mostre seus logs?
mcrypt is enabled
mb_string is enabled
Responder1
Esta pode não ser a maneira correta de fazer isso, mas no Windows Explorer obtive as propriedades da pasta de armazenamento, guia de segurança e desativei as "permissões herdadas". Em seguida, ADICIONEI ao usuário IUSR (site) a capacidade de gravar na pasta. Espero que isso não seja uma coisa ruim, mas pelo menos me ajudou a superar esse erro. Eu ficaria feliz se alguém com mais conhecimento do que eu apontasse a maneira mais segura de superar esse erro.
Responder2
Para nós, o problema desapareceu quando usamos o .\IIS_IUSRS
grupo em vez do IUSR
. Estranhamente, isso IUSR
já havia funcionado antes.