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 scriptvcvars32.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 nombreawk.exe
(en lugar deawk95.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 llamagawk.exe
y que el archivoawk.exe
es realmente un enlace simbólico al archivogawk.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 eliminarawk.exe
de la instalación de cygwin y copiargawk.exe
aawk.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
llamadozlib
. 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
yab.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
llamadoopenssl
, obtenido de http://www.openssl.org/source/, para compilarmod_ssl
o el proyectoabs.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.makNo 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
ymod_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.
- Descargue y descomprima el código fuente de Unix para la última versión.
- 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
- Abra un símbolo del sistema y un CD al httpd-2.carpeta x. x
- 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.
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.
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
.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.