Fala pessoal, tudo bem com vocês?
Hoje vou mostrar como resolvi um problema que enfrentei quando estava trabalhando em um projeto com a equipe de desenvolvimento.
O time de desenvolvimento me procurou informando que o PHP não estava conseguindo escrever no diretório em que estava publicado, eles fazem o auto deploy pelo Azure Devops e a aplicação precisaria criar um pequeno arquivo de cache.
Há várias soluções para esse cenário, uma delas (e a mais recomendada) seria não escrever nada no diretório wwwroot onde estava aplicação e mandar jogar em um diretório temporario
Nem por ssh utilizando direto era possível criar ou modificar nada nesse diretório. Quando o pessoal de desenvolvimento acessava por FTP, eles viam um diretório diferente também.
E qual a solução?
Antes precisamos entender a arquitetura e o que acontece é Azure faz a cópia inteira zipada da aplicação em um diretório chamado SitePackages (D:\home\data\SitePackages):
e extrai o conteúdo no diretório padrão wwwroot com permissão de leitura.
Isso acontece porque a configuração WEBSITE_RUN_FROM_PACKAGE está com valor 1 ou seja, a função Runs From Package torna seu diretório wwwroot somente leitura, para corrigir isso mude o valor para 0:
Após reiniciar a aplicação ou fazer o redeploy a API de implantação vai enviar o direto para o diretório wwwroot e você conseguirá escrever no diretório tanto via FTP, SSH ou com a própria aplicação
Nos vemos nos próximos posts
Até mais 😉