![]() Computadores |
![]() Dicas e Links |
![]() Programas e Programação |
| Dicas | ![]() |
"Arquivo não encontrado" quando usando PHP 5 e IIS ISAPI
Ao instalar o PHP 5 para usar com o IIS, existem duas formas de rodá-lo: ou em formato CGI (onde cada execução do PHP abre um novo "php.exe" na memória) ou em formato ISAPI (que faz com que o PHP seja executado como sendo um módulo pertencente ao IIS). Para pequenos servidores caseiros o modo padrão (CGI) não tem problema. Mas para sites com muitos acessos, ou com processamentos mais demorados, rodar várias instâncias do EXE é ruim, pois força o Windows e facilmente pode deixar a máquina sem memória ou recursos de processamento. Com isso a melhor saída é usar o ISAPI, que embora ainda não seja considerado "muito estável" pela própria equipe do PHP (já que o PHP é recomendado ser usado com Apache), pelo menos dá uma estabilidade melhor, e eu particularmente nunca tive problemas até hoje.
Em geral, para instalar como ISAPI basta ir no "Web Service Extensions" do IIS 6, clicar em "add a new web service extension" e apontar para o arquivo php5isapi.dll (considerando PHP 5) e depois dar um "allow" nele. Em seguida, vá até as propriedades da entrada do webserver, na pasta Home Directory, em "execute permissions" coloque "script only" e clique no botão "configuration". Clique no botão "add" e especifique a mesma DLL, informando a extensão ".php" e informando "all verbs".
Por padrão, isso já seria suficiente, mas me deparei várias vezes com o problema de "arquivo não encontrado" ao executar um arquivo PHP. Mesmo ajustando o caminho padrão de 404 no IIS. A resposta do problema é simples: apenas habilite, nesta última adição que fizemos, o item "Verify that file exists". Isso faz com que o IIS cheque a existência do módulo. Parece algo bobo, mas resolveu o problema :)