Executar o PHP no Windows de 64 bits
Eu recentemente comecei a trabalhar com servidores Windows de 64 bits com mais freqüência e pensei que eu iria partilhar algumas das minhas experiências ao longo do caminho.
Uma das questões que eu encontrei foi com a instalação do PHP em uma máquina R2 64 bits do Windows Server 2003. O servidor já tinha o IIS 6.0 instalado, então eu baixei a última distribuição de PHP e instalou-se da forma habitual, como descrito aqui Como instalar o PHP no IIS 6.0
A instalação do PHP no IIS é bastante simples, então eu estava um pouco surpreso quando fui presenteado com o seguinte erro depois de navegar para http://localhost para verificar se tudo estava funcionando.

A primeira coisa que eu sempre faço quando solução de um problema é fazer com que o Internet Explorer me dar uma mensagem de erro útil para trabalhar. Você pode fazer isso clicando em Ferramentas | Opções da Internet | Avançado e, em seguida, desmarcando ‘Mostrar mensagens de erro HTTP amigáveis ”, como mostrado aqui

Uma vez que isso foi feito, eu era capaz de ver a mensagem de erro real que está sendo retornado para o navegador, como mostrado aqui:

Desde a minha experiência anterior com 64-bit do Windows e IIS era muito limitada eu não tivesse encontrado esta mensagem de erro específica antes, mas uma verificação rápida através dos vários newsgroups e Google revela rapidamente a causa do problema.
Sem perceber que eu estava tentando carregar um aplicativo de 32 bits (neste caso, PHP), dentro de um processo de trabalho de 64 bits e era isso que estava causando o erro 500 Internal Server eu estava vendo no meu navegador. Desde a última distribuição do Windows do PHP www.php.netsó está disponível na versão de 32 bits você precisa configurar o IIS para ser executado em modo de 32 bits se você estiver usando uma versão do Windows de 64 bits.
Esta questão é discutida neste artigo KB Windows Server 2003 SP1 permite WOW64 compatibilidade para aplicações Web de 32 bits no IIS 6.0e também aqui Como alternar entre as versões de 32 bits do ASP.NET 1.1 ea versão do ASP 64-bit. NET 2.0 em uma versão do Windows de 64 bits
Para configurar o IIS para ser executado em modo de 32 bits você precisa executar o seguinte comando:
cscript% systemdrive% \ inetpub \ adminscripts \ adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
Isto irá definir a propriedade da metabase Enable32bitAppOnWin64 como True, como mostrado aqui:

É importante notar que o IIS 6.0 não suporta a execução em ambos os modos de 32 bits e 64 bits ao mesmo tempo – em outras palavras, este é um “tudo ou nada” configuração de todo o sistema, que afeta todos os sites do IIS no servidor , então se você precisa para executar aplicativos de 32 bits e 64 bits no IIS você terá que localizá-los em máquinas separadas ou executá-los todos no modo de 32 bits.

Agora, quando eu procure http://local/index.php a página é carregada corretamente e eu possa executar aplicações PHP no meu servidor IIS de 64 bits.