Esse capítulo ensina como compilar PHP a partir dos fontes no Windows, usando as ferramentas da Microsoft. Para compilar o PHP com cygwin, veja o Instalação em sistemas Unix.
Este rápido guia passo-a-passo foi escrito em Março de 2008, executado no Windows XP Service Pack 2 com todos as últimas atualizações e compilando o PHP versões 5.2.5 e 5.3. Sua experiência pode ser diferente se utilizar outras ferramentas
Baixar e instalar:
+-C:\work | +-bindlib_w32 | | +-Debug | | | +-resolv.lib | | | +-... | | +-... | +-win32build | | +-bin | | +-include | | +-lib | +-php-5.2.5 | | +-build | | +-win32 | | +-...
C:\Arquivos de Programas\Microsoft Visual Studio 9.0\VC> set "PATH=C:\work\win32build\bin;%PATH%" C:\Arquivos de Programas\Microsoft Visual Studio 9.0\VC>
Para compilar e montar o PHP, você precisa de um Microsoft Development Environment. Os seguintes ambientes são suportados:
Embora VC6 (Microsoft Visual C++ 6.0) seja usado para executar oficiais compilações do Windows, ele não pode ser obtido do site da Microsoft. Novos usuários procurando compilar o PHP precisa usar Microsoft Visual C++ 2005 Express Edition e seus componentes auxiliares.
Nota: Combinado, estes componentes são muito extenso e requisitará um gigabyte de espaço de disco.
Configurando o Microsoft Visual C++ 2005 Express é melhor contido, e requer a instalação de três pacotes separados e várias mudanças de compatibilidades. Mantenha uma lista de caminhos no qual estes programas estão sendo instalados. Faça download e instale os seguintes programas:
Há vários passos pós-instalação:
Finalmente, quando usando MSVC 2005 Express na linha de comando, várias variáveis de ambiente precisam ser definidas. vsvars32.bat normalmente encontradas em C:\Program Files\Microsoft Visual Studio 8\Common7\Tools (pesquise pelo arquivo caso contrário) contém estas declarações. As variáveis de ambiente PATH, INCLUDE e LIB precisam corresponder aos diretórios bin, include e lib dos dois recentes instalados SDK adicionado para eles.
Nota: O caminho do .NET SDK pode já estar presente no arquivo vsvars32.bat, como esta instalação do próprio SDK no mesmo diretório que o Microsoft Visual C++ 2005 Express.
Para extrair os arquivos baixados, você precisará de uma ferramenta que descompacte arquivos ZIP. O Windows XP e os mais novos já incluem essa funcionalidade embutida.
Antes de você começar, você tem que baixar:
Finalmente, você precisará dos fontes do PHP. Você pode pegar a verão mais recente de desenvolvimento usando » login anônimo ao CVS, um » snapshot ou o release mais novo dos » fontes.
Depois de baixar os pacotes necessários, você tem que extrair eles em um lugar apropriado.
+--C:\work | | | +--bindlib_w32 | | | | | +--arpa | | | | | +--conf | | | | | +--... | | | +--php-5.x.x | | | | | +--build | | | | | +--... | | | | | +--win32 | | | | | +--... | | | +--win32build | | | | | +--bin | | | | | +--include | | | | | +--lib
Se você não estiver usando o » Cygwin, você também deve criar os diretórios C:\usr\local\lib e então copie o arquivo bison.simple de C:\work\win32build\bin para C:\usr\local\lib.
Nota: Se você quiser usar o PEAR e o conviniente instalador em linha de comando, o CLI-SAPI é necessário. Para mais informação sobre PEAR e o instalador leia a documentação no web site do » PEAR.
Você deve compilar a biblioteca resolv.lib. Decida se você quer ter símbolos de depuração disponíveis (bindlib - Win32 Debug) ou não (bindlib - Win32 Release), mas por favor, lembre-se da escolha que você fará, por que a biblioteca com os símbolos só montará com o PHP se o mesmo for montado em modo de depuração. Monte a configuração apropriada:
Esse capítulo explica como compilar o PHP >=5 usando o novo sistema de montagem, que é baseado em CLI e muito similar com o sistema de montagem principal do PHP no Unix.
Nota: Esse sistema de montagem não está disponível no PHP 4. Favor, ler Building PHP using DSW files [PHP 4] se for o seu caso.
Antes de começar, assegure-se de let Juntanto tudo e que você compilou todas as bibliotecas necessárias, como » Libxml ou » ICU (necessária para o PHP >= 6).
Primeiro, você deve abrir um Prompt de Comando do Visual Strudio, que pode estar disponível no Menu Iniciar (Start Menu). Um Prompt de Comando comum não deve funcionar, uma vez que provavelmente as variáveis de ambiente necessárias não estão configuradas. Então digite algo como cd C:\work\php-5.x.x para entrar no diretório dos fontes do PHP. Agora se prepare para começar a configurar o PHP.
O segundo passo é executar o arquivo de lote buildconf para criar o script configure, procurando o diretório por arquivos config.w32. Via de regra, esse comando também procurará nos seguintes diretórios: pecl; ..\pecl; pecl\rpc; ..\pecl\rpc. A partir do PHP 5.1.0, vodê pode alterar esse comportamento usando o argumento --add-modules-dir (ex.: cscript /nologo win32/build/buildconf.js --add-modules-dir=../php-gtk2 --add-modules-dir=../pecl).
O terceiro passo é configurar. Para ver a lista de opções de configuração disponíveis, digite cscript /nologo configure.js --help. Depois de escolher as opções que você irá habilitar/desabilitar, digite algo como cscript /nologo configure.js --disable-foo --enable-fun-ext. Usar --enable-foo=shared tentará construir a extensão 'foo' como um módulo compartilhado, carregado dinâmicamente.
O último passo é compilar. Para isso, basta executar o comandocommand nmake. Os arquivos gerados (e.g. .exe e .dll) serão colocado ou nos diretórios Release_TS our Debug_TS (se compilado com Thread safety), ou no diretórios Release ou Debug caso contrário.
É opcional, mas você também pode executar os aplicativos de teste do PHP, executando nmake test. Se você quiser rodar apenas um teste específico, você pode user a variável 'TESTS' (ex.: nmake /D TESTS=ext/sqlite/tests test - só executará testes no sqlite). Para apagar esses arquivos que foram criados durante a compilação, você pode usar o comando nmake clean.
Uma opção de configuração muito útil para montar snapshots é --enable-snapshot-build, que adiciona un novo modo de compilação (nmake build-snap). Isso tenta montar cada extensão disponível (como compartilhada, por padrão), mas ignorará erros de montagem em extensões individuais ou SAPI.
Compilar o PHP usando os arquivos DSW não é suportado a partir do PHP5, já que um sistema mais flexível está disponível. De qualquer forma, você ainda pode usá-los, mas tenha em mente que ele não são testados freqüentemente, então você pode ter problemas de compilação. Para compilar o PHP 4 para Windows, no entanto, essa é a única opção disponível.
O próximo passo é configurar o MVC ++ para prepará-lo para compilar. Rode o Microsoft Visual C++, e do menu selecione Tools => Options. No diálogo que aparecerá, selecione o tab de diretórios. Depois, mude o dropdown para arquivos Executables, Includes, e Library. Suas configurações devem parecer com isso:
A melhor maneira de começar é compilando a versão CGI:
É possível fazer algumas personalizações mínimas para o processo de compilação editando o arquivo main/config.win32.h. Por exemplo, você pode muda a localização padrão do arquivo php.ini, as extensões integradas, e a localização padrão para suas extensões.
Depois, você pode querer montar a versão CLI que é feita para usar o PHP da linha de comando. Os passos são o mesmos para compilar a versão CGI, exceto que você tem que selecionar o arquivo de projeto php4ts_cli - Win32 Debug_TS ou php4ts_cli - Win32 Release_TS. Depois de uma compilação sucedida você encontrará o arquivo php.exe ou no diretório Release_TS\cli\ ou Debug_TS\cli\.
Para montar o módulo SAPI (php4isapi.dll) para integrar o PHP com o Microsoft IIS, modifique o seu arquivo de configuração para php4isapi-whatever-config e construa a dll desejada.