Compilar Apache para Microsoft Windows

Compilar httpd con los archivos de proyecto de Visual Studio incluidos

Requisitos

Compilar Apache requiere que el siguiente entorno esté instalado correctamente:

  • Espacio en disco

    Asegúrese de tener al menos 200 MB de espacio libre en disco disponible. Después de la instalación, Apache requiere aproximadamente 80 MB de espacio en disco, además de espacio para archivos de registro y caché, que pueden crecer rápidamente. Los requisitos reales de espacio en disco variarán considerablemente en función de la configuración elegida y de los módulos o bibliotecas de terceros, especialmente cuando también se construye OpenSSL. Debido a que muchos archivos son de texto y se comprimen fácilmente, la compresión del sistema de archivos NTFS reduce estos requisitos a la mitad.

  • Parches apropiados

    El binario httpd se construye con la ayuda de varios parches a paquetes de terceros, que aseguran que el código liberado sea compilable y depurable. Estos parches están disponibles y distribuidos desde http://www.apache.org/dist/httpd/binaries/win32/patches_applied/ y se recomienda aplicarlos para obtener resultados idénticos a los binarios distribuidos ASF «oficiales».

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

    Apache se puede compilar utilizando las herramientas de línea de comandos o desde el Banco de trabajo de Visual Studio IDE. La compilación de la línea de comandos requiere que el entorno refleje PATH, INCLUDE, LIB y otras variables que se pueden configurar con el script vcvars32.bat.

    Es posible que desee el Paquete de procesadores de Visual Studio para su versión anterior de Visual Studio, o una versión completa (no expresa) de las ediciones más recientes de Visual Studio, para el ml.ensamblador exe. Esto le permitirá compilar OpenSSL, si lo desea, utilizando la implementación de código ensamblador más eficiente.
    Solo la cadena de herramientas de compilador de Microsoft es compatible de forma activa con los colaboradores activos de httpd. Aunque el proyecto acepta regularmente parches para garantizar que MinGW y otras construcciones alternativas funcionen y las mejoren, no se mantienen activamente y a menudo se rompen en el curso del desarrollo normal.
  • Actualización del SDK de la plataforma Microsoft Windows, febrero de 2003 o posterior.

    Se incluye un SDK de plataforma de Windows adecuado de forma predeterminada en las versiones completas (no express / lite) de Visual C++ 7.1 (Visual Studio 2002) y posteriores, estos usuarios pueden ignorar estos pasos a menos que elijan explícitamente una versión más nueva o diferente del SDK de plataforma.

    Para usar Visual C++ 6.0 o 7.0 (Studio 2000. NET), el entorno del SDK de plataforma debe prepararse con el script setenv.bat (instalado por el SDK de plataforma) antes de iniciar la compilación de línea de comandos o iniciar el entorno GUI de msdev/devenv. La instalación del SDK de plataforma para las versiones de Visual Studio Express (2003 y posteriores) debe ajustar el entorno predeterminado de forma adecuada.

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

  • Perl y awk

    Varios pasos recomendados aquí requieren un intérprete de perl durante el proceso de preparación de la compilación, pero de lo contrario no es necesario.

    Para instalar Apache dentro del sistema de compilación, se modifican varios archivos utilizando la utilidad awk.exe. awk fue elegido ya que es una descarga muy pequeña (en comparación con Perl o WSH/VB) y cumple la tarea de modificar los archivos de configuración tras la instalación. El sitio http://www.cs.princeton.edu/~bwk/btl.mirror/ de Brian Kernighan tiene un binario nativo compilado de Win32, http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe que debe guardar con el nombre awk.exe (en lugar de awk95.exe).

    Si awk.no se encuentra exe, Makefile.el destino de instalación de win no realizará sustituciones en el destino instalado .conf archivos. Debe modificar manualmente el instalado .archivos de configuración para permitir que el servidor se inicie. Busque y reemplace todas las etiquetas «@ token@ » según corresponda.
    El IDE de Visual Studio solo encontrará awk.exe de la RUTA de acceso o de la ruta ejecutable especificada en la opción de menú Herramientas -> Opciones -> (Proyectos ->) Directorios. Asegúrese de awk.exe está en la ruta de acceso de su sistema.
    También tenga en cuenta que si está utilizando herramientas de Cygwin (http://www.cygwin.com/), la utilidad awk se llama gawk.exe y que el archivo awk.exe es realmente un enlace simbólico al archivo gawk.exe. El shell de comandos de Windows no reconoce los enlaces simbólicos y, debido a esto, la instalación del edificio fallará. Una solución alternativa es eliminar awk.exe de la instalación de cygwin y copiar gawk.exe a awk.exe. También tenga en cuenta los puertos cygwin/mingw de gawk 3.0.x tenía errores, actualice a la versión 3.1.x antes de intentar usar cualquier puerto gawk.
  • biblioteca zlib (para mod_deflate)

    Zlib debe instalarse en un subdirectorio srclib llamado zlib. Esto debe construirse en el lugar. Zlib se puede obtener de http://www.zlib.net/ mod_deflate funciona correctamente con la versión 1.2.3.

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

  • bibliotecas OpenSSL (para mod_ssl y ab.exe con soporte ssl)

    La biblioteca OpenSSL es software criptográfico. El país en el que reside actualmente puede tener restricciones a la importación, posesión, uso y/o reexportación a otro país de software de cifrado. ANTES de usar cualquier software de encriptación, verifique las leyes, regulaciones y políticas de su país con respecto a la importación, posesión, uso y reexportación de software de encriptación, para ver si esto está permitido. Consulte http://www.wassenaar.org/ para obtener más información.

    Configurar y compilar OpenSSL requiere que se instale perl.

    OpenSSL debe instalarse en un subdirectorio srclib llamado openssl, obtenido de http://www.openssl.org/source/, para compilar mod_ssl o el proyecto abs.exe, que es ab.c con soporte SSL habilitado. Preparar OpenSSL para vincularlo a Apache mod_ssl o abs.exe, y deshabilite las características con carga de patente en OpenSSL, puede usar los siguientes comandos de compilación:

    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

    No es aconsejable usar zlib-dynamic, ya que transfiere el costo de desinflar las transmisiones SSL a la primera solicitud, que debe cargar la dll de zlib. Nota el parche sugerido habilita la bandera-L para trabajar con compilaciones de Windows, corrige el nombre de zdll.lib y asegura .los archivos pdb se generan para la resolución de problemas. Si el ensamblador no está instalado, agregaría no-asm arriba y usaría ms\do_ms.bat en lugar de ms\do_masm.guión de murciélago.
  • Bibliotecas de bases de datos (para mod_dbd y mod_authn_dbm)

    La biblioteca apr-util expone la funcionalidad de cliente dbm (base de datos con claves) y dbd (base de datos orientada a consultas) al servidor httpd y sus módulos, como autenticación y autorización. Los proveedores sdbm dbm y odbc dbd se compilan incondicionalmente.

    La compatibilidad con dbd incluye el paquete Oracle instantclient, MySQL, PostgreSQL y sqlite. Para compilar todo esto, por ejemplo, configure la LIB para incluir la ruta de la biblioteca, INCLUDE para incluir la ruta de los encabezados y PATH para incluir la ruta dll bin de los cuatro SDK, y establezca la variable de entorno DBD_LIST para informar a la compilación qué SDK de controladores de cliente están instalados correctamente, p. ej.;

    set DBD_LIST=sqlite3 pgsql oracle mysql

    De manera similar, el soporte de dbm se puede extender con DBM_LIST para construir un proveedor de bases de datos Berkeley (db) y/o un proveedor de gdbm, configurando de manera similar LIB, INCLUDE y PATH first para garantizar que las bibliotecas y encabezados de la biblioteca del cliente estén disponibles.

    set DBM_LIST=db gdbm

    Dependiendo de la elección de las distribuciones de base de datos, puede ser necesario cambiar el nombre de destino del enlace real (por ejemplo, gdbm.lib vs libgdb.lib) que se enumeran en el correspondiente .dsp/.archivos mak dentro de los directorios srclib\apr-util\dbd or …\ dbm.

    Vea el archivo README-win32.archivo txt para obtener más consejos sobre cómo obtener los distintos SDK de controladores de base de datos.

Compilación a partir de fuentes Unix

La política del proyecto de servidor HTTP Apache es publicar solo fuentes Unix. Los paquetes fuente de Windows disponibles para su descarga han sido suministrados por voluntarios y es posible que no estén disponibles para cada versión. Aún puede construir el servidor en Windows a partir del código fuente de Unix con solo unos pocos pasos adicionales.

  1. Descargue y descomprima el código fuente de Unix para la última versión.
  2. Descargue y descomprima el código fuente de Unix para la última versión de APR, AR-Util y APR-Iconv, coloque estos orígenes en los directorios httpd-2.x. x \ srclib \ apr, httpd-2.x. x\srclib \ apr-util y httpd-2.x.x\srclib\apr-iconv
  3. Abra un símbolo del sistema y un CD al httpd-2.carpeta x. x
  4. Ejecute la utilidad de conversión de finales de línea en el símbolo del sistema;

perl srclib\apr\build\lineends.pl

Ahora puede compilar el servidor con el entorno de desarrollo de Visual Studio mediante el IDE. Las compilaciones de línea de comandos del servidor no son posibles desde fuentes Unix a menos que se exporten .archivos mak como se explica a continuación.

La compilación de línea de comandos

Makefile.win es el archivo makefile de Apache de nivel superior. Para compilar Apache en Windows, simplemente use uno de los siguientes comandos para compilar el sabor release o debug :

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

Cualquiera de los comandos compilará Apache. Este último deshabilitará la optimización de los archivos resultantes, lo que facilita el paso del código para encontrar errores y rastrear problemas.

Puede agregar sus opciones de proveedor de dbd y dbm apr-util con las variables de configuración adicionales (entorno) DBD_LIST y DBM_LIST, consulte los comentarios sobre bibliotecas de bases de datos, más arriba. Revise los comentarios iniciales en Makefile.gana para obtener opciones adicionales que se pueden proporcionar al invocar la compilación.

Developer Studio Workspace IDE Build

Apache también se puede compilar utilizando el entorno de desarrollo de Visual Studio de VC++. Para simplificar este proceso, se proporciona un espacio de trabajo de Visual Studio, Apache.dsw. Este espacio de trabajo expone toda la lista de proyectos .dsp en funcionamiento que se requieren para la versión binaria completa de Apache. Incluye dependencias entre los proyectos para asegurar que se construyen en el orden apropiado.

Abra el espacio de trabajo Apache.dsw y seleccioneInstallBin (Release o Debug compilar, según lo desee) como Proyecto activo. InstallBin hace que se compile todo el proyecto relacionado, y luego invoca Makefile.win para mover los ejecutables y archivos dll compilados. Puede personalizar la opción INSTDIR= cambiando la configuración de InstallBin, la pestaña General y la entrada de línea de comandos de compilación. INSTDIR el valor predeterminado es el directorio /Apache2. Si solo desea una compilación de prueba (sin instalar), puede compilar el proyecto BuildBin en su lugar.

Los archivos de proyecto .dsp se distribuyen en formato Visual Studio 6.0 (98). Visual C++ 5.0 (97) los reconocerá. Los usuarios de Visual Studio 2002 (. NET) y versiones posteriores deben convertir Apache.dsw más los archivos .dsp en archivos Apache.sln más .msproj. Asegúrese de volver a convertir el archivo .msproj si su archivo de origen .dsp cambia. Esto es realmente trivial, simplemente abra Apache.dsw en el IDE VC++ 7.0 una vez más y reconverta.

Hay un defecto en el .conversión vcproj de .archivos dsp. devenv.exe malinterpretará la bandera / D para banderas RC que contengan líneas /D entrecomilladas largas que contengan espacios. Comando:

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

convertirá las banderas / D para banderas RC para usar una sintaxis alternativa que se puede analizar; desafortunadamente, esta sintaxis no es compatible con Visual Studio 97 o su exportado .archivos mak. Estas banderas / D se utilizan para pasar la descripción larga de la mod_apachemodule.so archivos a los compartidos .compilación de identificador de versión de recurso rc.

Compilación con OpenSSL 1.1.0 y versiones posteriores Debido a la diferencia en la estructura de compilación de OpenSSL que comienza con la versión 1.1.0, deberá convertir los archivos dsp afectados con cvtdsp.pl a partir del 1.6 de ABRIL o superior. Comando:

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

Los usuarios de Visual Studio 2002 (. NET) y versiones posteriores también deben usar el menú Compilación, el diálogo del Administrador de configuración para desmarcar los componentes Debug y Release de los módulos de solución abs, mod_deflate y mod_ssl, así como todos los componentes que comiencen con apr_db*. Estos módulos se construyen invocando nmake, o el IDE directamente con el destino BinBuild, que construye esos módulos condicionalmente si existen los directorios srclib openssl y/o zlib, y basados en la configuración de variables de entorno DBD_LIST y DBM_LIST.

Exportar la línea de comandos .los archivos mak

Exportados .mak suponen una mayor molestia, pero son necesarios para que los usuarios de Visual C++ 5.0 compilen mod_ssl, abs (ab con soporte SSL) y/o mod_deflate. El .los archivos mak también admiten una gama más amplia de distribuciones en cadena de herramientas de C++, como Visual Studio Express.

Primero debe compilar todos los proyectos para crear todos los destinos dinámicos generados automáticamente, de modo que las dependencias se puedan analizar correctamente. Cree todo el proyecto desde Visual Studio 6.0 (98) IDE, usando el destino BuildAll, luego use el Menú Exportar Proyecto para todos los makefiles (marcando «con dependencias»).) Ejecute el siguiente comando para corregir rutas absolutas en rutas relativas para que se construyan en cualquier lugar:

perl srclib\apr\build\fixwin32mak.pl

Debe escribir este comando desde el directorio de nivel superior del árbol de fuentes httpd. Cada archivo de proyecto .mak y .dep dentro del directorio actual y a continuación se corregirá, y las marcas de tiempo se ajustarán para reflejar el .dsp.

Revise siempre los archivos .mak y .dep generados para el SDK de plataforma u otras rutas de archivo locales específicas de la máquina. El directorio DevStudio\Common\MSDev98\bin\ (VC6) contiene un archivo sysincl.dat, que enumera todas las excepciones. Actualice este archivo (incluidas las rutas de acceso hacia adelante y hacia atrás, como sys/time.h y sys\time.h) para ignorar dichas dependencias más nuevas. Incluir rutas de instalación local en un archivo distribuido .mak hará que la compilación falle por completo.

Si contribuye con un parche que revisa archivos de proyecto, debemos confirmar archivos de proyecto en formato Visual Studio 6.0. Los cambios deben ser simples, con indicadores de compilación y enlace mínimos que puedan ser reconocidos por todos los entornos de Visual Studio.

Instalación

Una vez compilado Apache, debe instalarse en el directorio raíz de su servidor. El valor predeterminado es el directorio \Apache2 de la misma unidad.

Para compilar e instalar automáticamente todos los archivos en el directorio de carpetas deseado, utilice uno de los siguientes comandos nmake :

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

El argumento dir a INSTDIR proporciona el directorio de instalación; se puede omitir si Apache se va a instalar en \Apache22 (de la unidad actual).

Advertencia sobre la compilación de Apache desde el árbol de desarrollo

Nota solo los archivos .dsp se mantienen entre compilaciones release. Los archivos .mak NO se regeneran, debido a la tremenda pérdida de tiempo del revisor. Por lo tanto, no puede confiar en los comandos NMAKE anteriores para compilar archivos de proyecto .dsp revisados a menos que luego exporte todos los archivos .mak usted mismo desde el proyecto. Esto no es necesario si se crea desde el entorno de Microsoft Developer Studio.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.