Compilar o Apache para o Microsoft Windows

Edifício httpd com o Visual Studio arquivos de projeto

Requisitos

Compilar o Apache requer o seguinte ambiente para ser instalado corretamente:

  • Espaço em Disco

    certifique-se de ter pelo menos 200 MB de espaço livre em disco disponível. Após a instalação, o Apache requer aproximadamente 80 MB de espaço em disco, além de espaço para arquivos de log e cache, que podem crescer rapidamente. Os requisitos reais de espaço em disco variam consideravelmente com base na configuração escolhida e em quaisquer módulos ou bibliotecas de terceiros, especialmente quando o OpenSSL também é construído. Como muitos arquivos são texto e muito facilmente compactados, a compactação do sistema de arquivos NTFS corta esses requisitos pela metade.

  • Patches apropriados

    o binário httpd é construído com a ajuda de vários patches para pacotes de terceiros, que garantem que o código liberado seja compilável e depurável. Esses patches estão disponíveis e distribuídos a partir de http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ e são recomendados para serem aplicados para obter resultados idênticos aos binários distribuídos asf” oficiais”.

  • Microsoft Visual C++ 6.0 (Visual Studio 97) ou posterior.

    o Apache pode ser construído usando as ferramentas de linha de comando ou de dentro do ambiente de trabalho do Visual Studio IDE. A construção da linha de comando requer que o ambiente reflita o PATH, INCLUDE, LIB e outras variáveis que podem ser configuradas com o script vcvars32.bat.

    você pode querer o pacote de processadores do Visual Studio para sua versão mais antiga do Visual Studio, ou uma versão completa (não expressa) das edições mais recentes do Visual Studio, para o ml.exe assembler. Isso permitirá que você construa OpenSSL, se desejado, usando a implementação de código de montagem mais eficiente.
    apenas a cadeia de ferramentas do compilador Microsoft é ativamente suportada pelos contribuidores httpd ativos. Embora o projeto aceite regularmente patches para garantir que o MinGW e outras construções alternativas funcionem e melhorem, eles não são mantidos ativamente e muitas vezes são quebrados no curso do desenvolvimento normal.
  • atualizado Microsoft Windows Platform SDK, fevereiro de 2003 ou posterior.

    um SDK apropriado da plataforma Windows é incluído por padrão nas versões completas (Não express/lite) do Visual C++ 7.1 (Visual Studio 2002) e posteriores, esses usuários podem ignorar essas etapas, a menos que escolha explicitamente uma versão mais recente ou diferente do SDK da plataforma.

    para usar o Visual C++ 6.0 ou 7.0 (Studio 2000.net), o ambiente do SDK da Plataforma deve ser preparado usando o script setenv.bat (instalado pelo SDK da plataforma) antes de iniciar a construção da linha de comando ou iniciar o ambiente MSDEV/devenv GUI. A instalação do SDK da plataforma para versões do Visual Studio Express (2003 e posteriores) deve ajustar o ambiente padrão adequadamente.

    "c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32"
    "c:\Program Files\Platform SDK\setenv.bat"

  • Perl e awk

    várias etapas recomendadas aqui exigem um interpretador perl durante o processo de preparação da compilação, mas de outra forma não é necessário.

    para instalar o Apache no sistema de compilação, vários arquivos são modificados usando o utilitário awk.exe. awk foi escolhido uma vez que é um download muito pequeno (em comparação com Perl ou WSH/VB) e realiza a tarefa de modificar arquivos de configuração após a instalação. O site http://www.cs.princeton.edu/~bwk/btl.mirror/ de Brian Kernighan tem um binário Win32 nativo compilado, http://www.cs.princeton.edu/~bwk/btl.mirror/ awk95.exe que você deve salvar com o nome awk.exe(em vez de awk95.exe).

    se awk.exe não foi encontrado, Makefile.o destino de instalação do win não executará substituições no instalado .arquivos conf. Você deve modificar manualmente o instalado .arquivos conf para permitir que o servidor seja iniciado. Pesquise e substitua todas as tags” @token@ ” conforme apropriado.
    o Visual Studio IDE só encontrará awk.exe no caminho ou no caminho executável especificado nos diretórios menu option Tools -> Options -> (Projects ->). Garantir awk.exe está no caminho do seu sistema.
    observe Também que se você estiver usando o Cygwin ferramentas (http://www.cygwin.com/) o awk utilitário é chamado gawk.exe e que o arquivo awk.exe é realmente um link simbólico para o gawk.exe arquivo. O shell de comando do Windows não reconhece links simbólicos e, devido a isso, o InstallBin falhará. Uma solução alternativa é excluir awk.exe da instalação do cygwin e copiar gawk.exe para awk.exe. Observe também as portas cygwin / mingw do gawk 3.0.x foram buggy, por favor atualizar para 3.1.x Antes de tentar usar qualquer porta gawk.
  • biblioteca zlib (paramod_deflate)

    o Zlib deve ser instalado em um subdiretório srclib chamado zlib. Isso deve ser construído no local. Zlib pode ser obtido de http://www.zlib.net/ — o mod_deflate é confirmado para funcionar corretamente com a versão 1.2.3.

    nmake -f win32\Makefile.msc
    nmake -f win32\Makefile.msc test

  • bibliotecas OpenSSL (para mod_ssl e ab.exe com suporte ssl)

    a biblioteca OpenSSL é um software criptográfico. O país em que você reside atualmente pode ter restrições à importação, posse, uso e/ou reexportação para outro país, de software de criptografia. Antes de usar qualquer software de criptografia, verifique as leis, regulamentos e políticas do seu país relativas à importação, posse ou uso e reexportação de software de criptografia para ver se isso é permitido. Consulte http://www.wassenaar.org/ para obter mais informações.

    configurar e construir OpenSSL requer que perl seja instalado.

    OpenSSL deve ser instalado em um subdiretório srclib chamado openssl, obtido de http://www.openssl.org/source/ , a fim de compilar mod_ssl ou o projeto abs.exe, que é ab.c com suporte SSL habilitado. Para preparar OpenSSL para ser vinculado ao Apache mod_ssl ou abs.exe e desative os recursos onerados por patentes no OpenSSL, você pode usar os seguintes comandos de compilação:

    perl Configure no-rc5 no-idea enable-mdc2 enable-zlib VC-WIN32 -Ipath/to/srclib/zlib -Lpath/to/srclib/zlib
    ms\do_masm.bat
    nmake -f ms\ntdll.mak

    não é aconselhável usar zlib-dynamic, pois isso transfere o custo de esvaziar fluxos SSL para a primeira solicitação que deve carregar a dll zlib. Observação o patch sugerido permite que o sinalizador-L funcione com compilações do windows, corrige o nome do zdll.lib e garante .os arquivos pdb são gerados para solução de problemas. Se o assembler não estiver instalado, você adicionaria no-asm acima e usaria ms\do_ms.bat em vez do ms\do_masm.roteiro de morcego.
  • bibliotecas de banco de dados (para mod_dbd e mod_authn_dbm)

    a biblioteca apr-util expõe a funcionalidade do cliente dbm (keyed database) e dbd (query oriented database) ao servidor httpd e seus módulos, como autenticação e autorização. Os provedores sdbm dbm e odbc dbd são compilados incondicionalmente.

    o suporte dbd inclui o pacote oracle instantclient, MySQL, PostgreSQL e sqlite. Para construir esses todos, por exemplo, configurar a LIB para incluir o caminho de biblioteca, INCLUIR para incluir os cabeçalhos caminho, e o CAMINHO para incluir a dll bin caminho de todos os quatro SDK, e definir o DBD_LIST variável de ambiente para informar a construir que o driver cliente SDKs estão instalados corretamente, e.g.;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    da mesma forma, o dbm suporte pode ser estendido com DBM_LIST para construir um Berkeley DB (db) e/ou gdbm fornecedor, através da mesma forma de configurar LIB, INCLUIR e o CAMINHO para garantir a biblioteca de cliente de bibliotecas e cabeçalhos estão disponíveis.

    set DBM_LIST=db gdbm

    dependendo da escolha das distribuições de banco de dados, pode ser necessário alterar o nome de destino do link real (por exemplo, gdbm.lib vs. libgdb.lib) que estão listados no correspondente .dsp/.arquivos mak dentro dos diretórios srclib \ apr-util \ dbd ou …\ dbm.

    veja o README-win32.arquivo txt para obter mais dicas sobre como obter os vários SDKs de driver de banco de dados.

construindo a partir de fontes Unix

a política do projeto Apache HTTP Server é liberar apenas Fontes Unix. Os pacotes de origem do Windows disponibilizados para download foram fornecidos por voluntários e podem não estar disponíveis para cada versão. Você ainda pode construir o servidor no Windows a partir do tarball de origem Unix com apenas algumas etapas adicionais.

  1. Baixe e descompacte o tarball de origem Unix para a versão mais recente.
  2. Baixe e descompacte o tarball de origem Unix para a versão mais recente de APR, AR-Util e APR-Iconv, coloque essas Fontes nos diretórios httpd-2.X. X \ srclib \ apr, httpd-2.X. X \ srclib \ apr-util e httpd-2.x.x \ srclib \ apr-iconv
  3. abra um Prompt de comando e CD para o httpd-2.x.pasta x
  4. Executar as terminações de linha utilitário de conversão no prompt;

perl srclib\apr\build\lineends.pl

agora Você pode criar o servidor com o ambiente de desenvolvimento Visual Studio usando a IDE. As compilações de linha de comando do servidor não são possíveis a partir de fontes Unix, a menos que você exporte .arquivos mak conforme explicado abaixo.

construção de linha de comando

Makefile.win é o Apache makefile de nível superior. Para compilar o Apache no Windows, basta usar um dos seguintes comandos para criar o release ou debug sabor:

nmake /f Makefile.win _apacher
nmake /f Makefile.win _apached

o comando irá compilar o Apache. Este último desativará a otimização dos arquivos resultantes, facilitando a etapa única do código para encontrar bugs e rastrear problemas.

você pode adicionar suas opções de Provedor de DBD e dbm apr-util com as variáveis adicionais make (environment) DBD_LIST e DBM_LIST, consulte os comentários sobre bibliotecas de banco de dados, acima. Revise os comentários iniciais no Makefile.ganhe por opções adicionais que podem ser fornecidas ao invocar a compilação.

Developer Studio Workspace Ide Build

o Apache também pode ser compilado usando o ambiente de desenvolvimento do Visual Studio do VC++. Para simplificar esse processo, um espaço de trabalho do Visual Studio, Apache.dsw, é fornecido. Este espaço de trabalho expõe toda a lista de projetos de trabalho .dsp que são necessários para a versão binária completa do Apache. Inclui dependências entre os projetos para garantir que eles sejam construídos na ordem apropriada.

abra o espaço de trabalho Apache.dsw e selecione InstallBin (Release ou Debug construir, conforme desejado) como o projeto ativo. InstallBin faz com que todos os projetos relacionados sejam construídos e, em seguida, invoca Makefile.win para mover os executáveis e dlls compilados. Você pode personalizar a escolha INSTDIR=alterando as configurações InstallBin, guia Geral, criar entrada de linha de comando. INSTDIR o padrão é o diretório /Apache2. Se você deseja apenas uma compilação de teste (sem instalar), pode construir o projeto BuildBin.

os arquivos de projeto .dsp são distribuídos no formato Visual Studio 6.0 (98). Visual C++ 5.0 (97) vai reconhecê-los. Visual Studio 2002 (. NET) e usuários posteriores devem converter Apache.dsw mais os arquivos .dsp em um Apache.sln mais .msproj arquivos. Certifique-se de reconverter o arquivo .msproj novamente se seu arquivo de origem .dsp mudar! Isso é realmente trivial, basta abrir Apache.dsw no VC++ 7.0 IDE mais uma vez e reconverter.

há uma falha no .vcproj conversão de .arquivos dsp. devenv.exe irá analisar mal o sinalizador / D para sinalizadores RC contendo aspas longas / d’efines que contêm espaços. Comando:

perl srclib\apr\build\cvtdsp.pl -2005

irá converter os sinalizadores / D para sinalizadores RC para usar uma sintaxe alternativa e parseable; infelizmente, essa sintaxe não é suportada pelo Visual Studio 97 ou exportada .arquivos mak. Estes sinalizadores / D são usados para passar a longa descrição do mod_apachemodule.so arquivos para o compartilhado .versão do recurso rc-compilação do identificador.

construindo com OpenSSL 1.1.0 e superior devido à diferença na estrutura de compilação do OpenSSL começando com a versão 1.1.0, você precisará converter os arquivos dsp afetados com cvtdsp.pl de abril 1.6 ou superior. Comando:

perl srclib\apr\build\cvtdsp.pl -ossl11

O Visual Studio 2002 (.NET) e, mais tarde, os usuários também devem usar o Compilação menu, Configuração do Gestor de caixa de diálogo, desmarque ambas as Debug e Release Solução módulos abs, mod_deflate e mod_ssl componentes, bem como todos os componentes começando com apr_db*. Estes módulos são construídos invocando nmake, ou o IDE diretamente com o BinBuild destino, que cria os módulos condicionalmente se a srclib diretórios openssl e/ou zlib existir, e com base na configuração de DBD_LIST e DBM_LIST variáveis de ambiente.

exportar linha de comando .os arquivos mak

exportados .mak representam um incômodo maior, mas são necessários para que os usuários do Visual C++ 5.0 construam mod_ssl, abs (ab com suporte SSL) e/ou mod_deflate. O.os arquivos mak também suportam uma gama mais ampla de distribuições de cadeia de ferramentas C++, como o Visual Studio Express.

você deve primeiro construir todos os projetos para criar todos os destinos dinâmicos gerados automaticamente, para que as dependências possam ser analisadas corretamente. Construa todo o projeto a partir do Visual Studio 6.0 (98) IDE, usando o destino BuildAll e, em seguida, use o menu de projeto exportar para todos os makefiles (verificando “com dependências”. Execute o seguinte comando para corrigir caminhos absolutos em relativos caminhos para que eles vão construir em qualquer lugar:

perl srclib\apr\build\fixwin32mak.pl

Você deve digitar este comando a partir do diretório de nível superior do httpd árvore de origem. Cada arquivo de projeto .mak e .dep dentro do diretório atual e abaixo será corrigido, e os carimbos de data / hora ajustados para refletir o .dsp.

sempre revise os arquivos gerados .mak e .dep para o SDK da plataforma ou outros caminhos de arquivos locais específicos da máquina. O diretório DevStudio\Common\MSDev98\bin\ (VC6) contém um arquivo sysincl.dat, que lista todas as exceções. Atualize este arquivo (incluindo caminhos para frente e para trás, como sys/time.h e sys\time.h) para ignorar essas dependências mais recentes. Incluir caminhos de instalação local em um arquivo .mak distribuído fará com que a compilação falhe completamente.

se você contribuir com um patch que revisa arquivos de projeto, devemos confirmar arquivos de projeto no formato Visual Studio 6.0. As alterações devem ser simples, com o mínimo de compilação e sinalizadores de ligação que podem ser reconhecidos por todos os ambientes do Visual Studio.

instalação

uma vez que o Apache foi compilado, ele precisa ser instalado em seu diretório raiz do servidor. O padrão é o diretório \Apache2, da mesma unidade.

Para construir e instalar todos os arquivos para a pasta desejada dir automaticamente, use um dos seguintes nmake comandos:

nmake /f Makefile.win installr INSTDIR=dir
nmake /f Makefile.win installd INSTDIR=dir

dir argumento para INSTDIR fornece o diretório de instalação; pode ser omitido se o Apache for instalado em \Apache22(da unidade atual).

Aviso sobre a construção do Apache a partir da árvore de desenvolvimento

observe que apenas os arquivos .dsp são mantidos entre as compilações release. Os arquivos .mak não são regenerados, devido ao tremendo desperdício de tempo do revisor. Portanto, você não pode confiar nos comandos NMAKE acima para construir arquivos de projeto revisados .dsp, a menos que você exporte todos os arquivos .mak do projeto. Isso é desnecessário se você construir a partir do ambiente do Microsoft Developer Studio.

Deixe uma resposta

O seu endereço de email não será publicado.