Instalação do PHP no IIS: ISAPI ou CGI?

7

Estou executando o IIS6 no Windows Server 2k3 e atualmente tenho o PHP instalado como um módulo ISAPI. Estamos prestes a atualizar nosso ambiente para o PHP 5.3.0, e isso me fez pensar se eu deveria ficar com o módulo ISAPI ou se havia uma razão para o CGI se encaixar melhor.

Temos um servidor da web para nossa organização e não precisamos nos preocupar com a segurança relacionada à hospedagem compartilhada; temos vários sites, mas todos eles pertencem a nós.

Existe uma vantagem em usar um método sobre o outro? Um é mais seguro? É simplesmente uma questão de preferência?

EDIT: PHP 5.3.0 caiu suporte para ISAPI, então você precisa instalá-lo via FastCGI. Do Guia de migração do PHP :

Support for the ISAPI module has been dropped. Use the improved FastCGI SAPI module instead.

    
por Jacob Hume 27.07.2009 / 19:51

3 respostas

6

O binário do PHP CGI do Non-Thread-Safe para Windows deve oferecer a máxima estabilidade, compatibilidade e desempenho como:

  1. O PHP foi originalmente projetado e otimizado para o ambiente de vários processos
  2. A maioria das extensões foi criada tendo isso em mente
  3. Não há "espera" exibida em ambientes com vários segmentos

No entanto, o desempenho e a estabilidade são suscetíveis quando o binário CGI é usado em ambientes multi-threaded, como o IIS. Portanto, a maioria das pessoas começou a usar a relativamente nova extensão FastCGI que está disponível para o IIS 5.1 / IIS 6.0 como um download e junto com o IIS7.

Este guia explica como instalar e configurar o PHP CGI com a extensão FastCGI da Microsoft.

A segunda opção é usar PHP ISAPI, mas certifique-se de (i) usar construções Thread-Safe (ii) usar extensões estáveis e testadas - a ISAPI do PHP pode travar e derrubar o IIS também. Uma nota secundária é que a segurança do piso em PHP é como um freio de mão sempre engatado; alguns até dizem que é um mito.

Atualização: a ISAPI do PHP não é mais enviada, então a pergunta sobre ISAPI vs. CGI não é mais uma questão. FastCGI é recomendado.

  1. O suporte a FastCGI está embutido nas versões modernas do IIS, você só precisa ativá-lo.
  2. O instalador do PHP apresenta a opção de instalar o PHP com o FastCGI.
  3. Para as pessoas que querem executar instalações em ZIP, você pode usar o "PHP Manager for IIS" para configurar o PHP com o IIS.
por 26.11.2009 / 09:31
6

Pessoalmente, acho que para sites não ocupados (por exemplo, entre 0 a 25 usuários em média) o ISAPI funciona bem, descobri que há poucos benefícios em usar o CGI em vez do ISAPI.

No entanto, se você tiver um site ocupado ou não se importar em trabalhar um pouco com ele, recomendo olhar para o FastCGI, pois agora você pode obtê-lo no Win2003 IIS6. Ele é executado com muito mais rapidez em cargas pesadas.

link

    
por 27.07.2009 / 19:54
5

O CGI tem um desempenho muito ruim no IIS em comparação com o modelo ISAPI (já que a criação de novos processos, que é como o CGI funciona, é muito "cara" em sistemas operacionais dervidos do Windows NT). Nas versões modernas do IIS, muitos dos "probems" de ISAPI (vazamentos de memória, necessidade de "reciclar" aplicativos, etc) são "fixos" e os aplicativos baseados em ISAPI geralmente funcionam muito bem e são fáceis de gerenciar. Quaisquer razões que você encontrar: aplicativos baseados em CGI sendo "melhores" do que aplicativos baseados em ISAPI provavelmente foram escritos em um mindset da era IIS 4.0 ou IIS 5.0.

    
por 27.07.2009 / 19:54

Tags