<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Compilando a partir dos fontes</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="Instalação em sistemas Windows" HREF="install.windows.html"><LINK REL="PREVIOUS" TITLE="Xitami no Microsoft Windows" HREF="install.windows.xitami.html"><LINK REL="NEXT" TITLE="Instalação de extensões no Windows" HREF="install.windows.extensions.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="install.windows.xitami.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Capítulo 6. Instalação em sistemas Windows</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="install.windows.extensions.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="install.windows.building" >Compilando a partir dos fontes</A ></H1 ><P > 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 <A HREF="install.unix.html" >Capítulo 4</A >. </P ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.building.requirement" >Dependências</A ></H2 ><P > Para compilar e montar o PHP, você precisa de um Microsoft Development Environment. Microsoft Visual C++ 6.0 é recomendado, embora versões do Visual C++ .NET também funcionarão. A partir do PHP 5 as ferramentas grátis Microsoft .NET também são suportadas (você precisará instalar o Windows Platform SDK, Visual C++ Toolkit e o NET Framework SDK). </P ><P > 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. </P ><P > Antes de você começar, você tem que baixar: </P ><P ></P ><UL ><LI ><P > win32 buildtools do site do PHP em <A HREF="http://www.php.net/extra/win32build.zip" TARGET="_top" >http://www.php.net/extra/win32build.zip</A >. </P ></LI ><LI ><P > o código-fonte para o DNS name resolver usado pelo PHP em <A HREF="http://www.php.net/extra/bindlib_w32.zip" TARGET="_top" >http://www.php.net/extra/bindlib_w32.zip</A >. Esse é um substituto para a biblioteca <TT CLASS="filename" >resolv.lib</TT > inclusa no arquivo <TT CLASS="filename" > win32build.zip</TT >. </P ></LI ><LI ><P > Se você planeja compilar o PHP como um módulo do Apache você também precisará dos <A HREF="http://www.apache.org/dist/httpd/" TARGET="_top" >fontes do Apache</A >. </P ></LI ></UL ><P > Finalmente, você precisará dos fontes do PHP. Você pode pegar a verão mais recente de desenvolvimento usando <A HREF="http://www.php.net/anoncvs.php" TARGET="_top" > login anônimo ao CVS</A >, um <A HREF="http://snaps.php.net/" TARGET="_top" > snapshot</A > ou o release mais novo dos <A HREF="http://www.php.net/downloads.php" TARGET="_top" > fontes</A >. </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.building.install" >Juntanto tudo</A ></H2 ><P > Depois de baixar os pacotes necessários, você tem que extrair eles em um lugar apropriado. <P ></P ><UL ><LI ><P > Crie um diretório de trabalho onde todos os arquivos serão extraídos, ex.: <TT CLASS="filename" >C:\work</TT >. </P ></LI ><LI ><P > Crie o diretório <TT CLASS="filename" >win32build</TT > nesse diretório de trabalho (<TT CLASS="filename" >C:\work</TT >) e descompate o arquivo <TT CLASS="filename" > win32build.zip</TT > nele. </P ></LI ><LI ><P > Crie o diretório <TT CLASS="filename" >bindlib_w32</TT > nesse diretório de trabalho (<TT CLASS="filename" >C:\work</TT >) e descompate o arquivo <TT CLASS="filename" > bindlib_w32.zip</TT > nele. </P ></LI ><LI ><P > Extraia o código fonte do PHP no diretório de trabalho (<TT CLASS="filename" >C:\work</TT >). </P ></LI ><LI ><P > Compile as biblioteca que você precisará (ou baixe os binários se estiverem disponíveis) e coloque os cabeçalhos e bibliotecas no diretório <TT CLASS="filename" >C:\work\win32build\include</TT > e <TT CLASS="filename" >C:\work\win32build\lib</TT >, respectivamente. </P ></LI ><LI ><P > Se você não tem o cygwin instalado com o bison e flex, você precisará também fazer o diretório <TT CLASS="filename" >C:\work\win32build\bin</TT > disponível no PATH, assim estas ferramentas podem ser encontradas pelo script configure. </P ></LI ></UL > Seguindo esses passos a sua estrutura de diretório parecerá com isso: <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="screen" >+--C:\work | | | +--bindlib_w32 | | | | | +--arpa | | | | | +--conf | | | | | +--... | | | +--php-5.x.x | | | | | +--build | | | | | +--... | | | | | +--win32 | | | | | +--... | | | +--win32build | | | | | +--bin | | | | | +--include | | | | | +--lib</PRE ></TD ></TR ></TABLE > </P ><P > Se você não estiver usando o <A HREF="http://www.cygwin.com/" TARGET="_top" >Cygwin</A >, você também deve criar os diretórios <TT CLASS="filename" >C:\usr\local\lib</TT > e então copie o arquivo <TT CLASS="filename" >bison.simple</TT > de <TT CLASS="filename" >C:\work\win32build\bin </TT > para <TT CLASS="filename" >C:\usr\local\lib</TT >. </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > 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 <A HREF="http://pear.php.net/manual/" TARGET="_top" >PEAR</A >. </P ></BLOCKQUOTE ></DIV ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.building.resolvlib" >Compilando resolv.lib</A ></H2 ><P > Você deve compilar a biblioteca <TT CLASS="filename" >resolv.lib</TT >. 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: <P ></P ><UL ><LI ><P > Para usuários de GUI, execute VC++, clicando duas-vezes em <TT CLASS="filename" >C:\work\bindlib_w32\bindlib.dsw</TT >. Então selecione Build=>Rebuild All. </P ></LI ><LI ><P > Para usuários de linha de comando, assegure-se que as variáveis de ambiente do C++ estão registradas, ou execute <B CLASS="command" >vcvars.bat</B >, e então execute um dos seguintes comandos: </P ><P ></P ><UL ><LI ><P > <B CLASS="command" >msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"</B > </P ></LI ><LI ><P > <B CLASS="command" >msdev bindlib.dsp /MAKE "bindlib - Win32 Release"</B > </P ></LI ></UL ></LI ></UL > Nesse ponto, você deve ter uma <TT CLASS="filename" >resolv.lib</TT > utilizável ou nos sub-diretórios <TT CLASS="filename" >C:\work\bindlib_w32\Debug</TT > ou <TT CLASS="filename" >Release</TT >. Copie esse arquivo para o diretório <TT CLASS="filename" >C:\work\win32build\lib</TT >, sobrescrevendo o arquivo de mesmo nome nesse diretório. </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.building.new" >Montando o PHP usando no novo sistema de montagem [Apenas PHP >=5]</A ></H2 ><P > 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. </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Esse sistema de montagem não está disponível no PHP 4. Favor, ler <A HREF="install.windows.building.html#install.windows.building.dsw" >a seção <I >Building PHP using DSW files [PHP 4]</I ></A > se for o seu caso. </P ></BLOCKQUOTE ></DIV ><P > Antes de começar, assegure-se de let <A HREF="install.windows.building.html#install.windows.building.install" >a seção <I >Juntanto tudo</I ></A > e que você compilou todas as bibliotecas necessárias, como <A HREF="http://www.xmlsoft.org/" TARGET="_top" >Libxml</A > ou <A HREF="http://icu.sourceforge.net/" TARGET="_top" >ICU</A > (necessária para o PHP >= 6). </P ><P > 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 <B CLASS="command" >cd C:\work\php-5.x.x</B > para entrar no diretório dos fontes do PHP. Agora se prepare para começar a configurar o PHP. </P ><P > O segundo passo é executar o arquivo de lote <B CLASS="command" >buildconf</B > para criar o script configure, procurando o diretório por arquivos <TT CLASS="filename" >config.w32</TT >. Via de regra, esse comando também procurará nos seguintes diretórios: <TT CLASS="filename" >pecl; ..\pecl; pecl\rpc; ..\pecl\rpc</TT >. A partir do PHP 5.1.0, vodê pode alterar esse comportamento usando o argumento <TT CLASS="literal" >--add-modules-dir</TT > (ex.: <B CLASS="command" >cscript /nologo win32/build/buildconf.js --add-modules-dir=../php-gtk2 --add-modules-dir=../pecl</B >). </P ><P > O terceiro passo é configurar. Para ver a lista de opções de configuração disponíveis, digite <B CLASS="command" >cscript /nologo configure.js --help</B >. Depois de escolher as opções que você irá habilitar/desabilitar, digite algo como <B CLASS="command" >cscript /nologo configure.js --disable-foo --enable-fun-ext</B >. Usar <TT CLASS="literal" >--enable-foo=shared</TT > tentará construir a extensão 'foo' como um módulo compartilhado, carregado dinâmicamente. </P ><P > O último passo é compilar. Para isso, basta executar o comandocommand <B CLASS="command" >nmake</B >. Os arquivos gerados (e.g. .exe e .dll) serão colocado ou nos diretórios <TT CLASS="filename" >Release_TS</TT > our <TT CLASS="filename" >Debug_TS</TT > (se compilado com Thread safety), ou no diretórios <TT CLASS="filename" >Release</TT > ou <TT CLASS="filename" >Debug</TT > caso contrário. </P ><P > É opcional, mas você também pode executar os aplicativos de teste do PHP, executando <B CLASS="command" >nmake test</B >. Se você quiser rodar apenas um teste específico, você pode user a variável 'TESTS' (ex.: <B CLASS="command" >nmake /D TESTS=ext/sqlite/tests test</B > - só executará testes no sqlite). Para apagar esses arquivos que foram criados durante a compilação, você pode usar o comando <B CLASS="command" >nmake clean</B >. </P ><P > Uma opção de configuração muito útil para montar snapshots é <TT CLASS="literal" >--enable-snapshot-build</TT >, que adiciona un novo modo de compilação (<B CLASS="command" >nmake build-snap</B >). Isso tenta montar cada extensão disponível (como compartilhada, por padrão), mas ignorará erros de montagem em extensões individuais ou SAPI. </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.building.dsw" >Building PHP using DSW files [PHP 4]</A ></H2 ><P > Compilar o PHP usando os arquivos DSW não é suportado a partir do PHP5, já que um <A HREF="install.windows.building.html#install.windows.building.new" >sistema mais flexível está disponível</A >. 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. </P ><DIV CLASS="sect3" ><H3 CLASS="sect3" ><A NAME="install.windows.building.dsw.configure" >Configure MVC ++</A ></H3 ><P > 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: <P ></P ><UL ><LI ><P > Arquivos executáveis: <TT CLASS="filename" >C:\work\win32build\bin</TT >, Usuários do Cygwin: <TT CLASS="filename" >C:\cygwin\bin</TT > </P ></LI ><LI ><P > Arquivos inclusos: <TT CLASS="filename" >C:\work\win32build\include</TT > </P ></LI ><LI ><P > Arquivos de Bibliotecas: <TT CLASS="filename" >C:\work\win32build\lib</TT > </P ></LI ></UL > </P ></DIV ><DIV CLASS="sect3" ><H3 CLASS="sect3" ><A NAME="install.windows.building.dsw.compile" >Compilando</A ></H3 ><P > A melhor maneira de começar é compilando a versão CGI: </P ><P ></P ><UL ><LI ><P > Para usuários de GUI, execute VC++, e selecione File => Open Workspace e selecione <TT CLASS="filename" >c:\work\php-4.x.x\win32\php4ts.dsw</TT >. Depois vá em Build=>Set Active Configuration e selecione a configuração desejada, ou <TT CLASS="literal" >php4ts - Win32 Debug_TS</TT > ou <TT CLASS="literal" >php4ts - Win32 Release_TS</TT >. Finalmente, selecione Build=>Rebuild All. </P ></LI ><LI ><P > Para usuários de linha de comenado, assegure-se que você ou registrou as variáveis de ambiente do C++, ou executou <B CLASS="command" >vcvars.bat</B >, e então execute um dos seguintes comando no diretório <TT CLASS="filename" >c:\work\php-4.x.x\win32</TT >: </P ><P ></P ><UL ><LI ><P > <B CLASS="command" >msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"</B > </P ></LI ><LI ><P > <B CLASS="command" >msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"</B > </P ></LI ><LI ><P > Nesse ponto, você deve ter um arquivo <TT CLASS="filename" >php.exe</TT > usável ou no subdiretório <TT CLASS="filename" >c:\work\php-4.x.x.\Debug_TS</TT > ou em <TT CLASS="filename" >Release_TS</TT >. </P ></LI ></UL ></LI ></UL ><P > É possível fazer algumas personalizações mínimas para o processo de compilação editando o arquivo <TT CLASS="filename" >main/config.win32.h</TT >. Por exemplo, você pode muda a localização padrão do arquivo <TT CLASS="filename" >php.ini</TT >, as extensões integradas, e a localização padrão para suas extensões. </P ><P > Depois, você pode querer montar a versão CLI que é feita para usar o <A HREF="features.commandline.html" >PHP da linha de comando</A >. Os passos são o mesmos para compilar a versão CGI, exceto que você tem que selecionar o arquivo de projeto <TT CLASS="literal" >php4ts_cli - Win32 Debug_TS</TT > ou <TT CLASS="literal" >php4ts_cli - Win32 Release_TS</TT >. Depois de uma compilação sucedida você encontrará o arquivo <TT CLASS="filename" >php.exe</TT > ou no diretório <TT CLASS="filename" >Release_TS\cli\</TT > ou <TT CLASS="filename" >Debug_TS\cli\</TT >. </P ><P > Para montar o módulo SAPI (<TT CLASS="filename" >php4isapi.dll</TT >) para integrar o PHP com o Microsoft IIS, modifique o seu arquivo de configuração para <TT CLASS="filename" >php4isapi-whatever-config</TT > e construa a dll desejada. </P ></DIV ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="install.windows.xitami.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="install.windows.extensions.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Xitami no Microsoft Windows</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="install.windows.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Instalação de extensões no Windows</TD ></TR ></TABLE ></DIV ></BODY ></HTML >