Instalar Apache HTTP siempre es divertido. Hace unos días, estaba instalar Apache 2.4 en CentOS VM y encontró múltiples errores.
Pensé que sería útil juntarlos como referencia.
APR not found
[root @ chandan httpd-2.4.25] # ./configure --enable-ssl comprobando el diseño elegido ... Apache comprobando si funciona mkdir -p ... sí comprobando grep que maneja líneas largas y -e ... / usr / bin / grep comprobando egrep ... / usr / bin / grep -E comprobando el tipo de sistema de compilación ... x86_64-unknown-linux-gnu comprobando el tipo de sistema host ... x86_64-unknown-linux-gnu comprobando el objetivo tipo de sistema ... x86_64-unknown-linux-gnu configure: configure: Configurando la biblioteca Apache Portable Runtime ... configure: comprobando APR ... no configure: error: APR no encontrado. Lea la documentación. [root @ chandan httpd-2.4.25] #
APR significa “Apache Portable Runtime” y se necesita para compilar desde la fuente. Si estás en la misma situación que yo, lo siguiente rescatar tus vecinos.
Nombre, necesita instalar APR.
- Descargue la última versión de APR usando wget
wget https://www-eu.apache.org/dist/apr/apr-1.6.3.tar.gz.
- Extrae el archivo descargado
gunzip -c abril-1.6.3.tar.gz | alquitrán xvf -
- creará una nueva carpeta "abr-1.6.3"
- Entra y compila con el comando configure
. / Configure
Tardará unos segundos y, una vez hecho, recibirá un mensaje de respuesta (asegúrese de que no haya errores).
- El último paso sería instalar usando el comando make
hacer hacer instalar
Una vez hecho esto, intenté instalar Apache y obtuve otro error.
APR-util not found
[root @ chandan httpd-2.4.25] # ./configure --enable-ssl --enable-so comprobando el diseño elegido ... Apache comprobando si funciona mkdir -p ... sí comprobando grep que maneja líneas largas y -e ... / usr / bin / grep comprobando egrep ... / usr / bin / grep -E comprobando el tipo de sistema de compilación ... x86_64-unknown-linux-gnu comprobando el tipo de sistema host ... x86_64-unknown- linux-gnu verificando el tipo de sistema de destino ... x86_64-unknown-linux-gnu configure: configure: Configurando la biblioteca Apache Portable Runtime ... configure: verificando APR ... sí configurando CC en "gcc" configurando CPP en "gcc - E "configurando CFLAGS en" -g -O2 -pthread "configurando CPPFLAGS en" -DLINUX -D_REENTRANT -D_GNU_SOURCE "configurando LDFLAGS en" "configure: configure: Configurando la biblioteca Apache Portable Runtime Utility ... configure: comprobando APR-util ... no configure: error: APR-util no encontrado. Lea la documentación. [root @ chandan httpd-2.4.25] #
En caso de que también tenga el error "APR-util not found", debe instalar lo siguiente.
- Descargue la última fuente APR-util
wget https://www-eu.apache.org/dist/apr/apr-util-1.6.1.tar.gz.
- Extraiga el archivo gz descargado
gunzip -c apr-util-1.6.1.tar.gz | alquitrán xvf -
- Vaya dentro de la carpeta recién creada "apr-util-1.6.1" e instálela usando los siguientes comandos
./configure --with-apr = / usr / local / apr / bin / apr-1-config make make install
Intenté instalar Apache nuevamente y obtuve otro error.
pcre-config for libpcre not found
Esto es lo que conseguí.
comprobando si el compilador de C funciona ... sí comprobando el nombre del archivo de salida predeterminado del compilador de C ... a. comprobando el sufijo de los ejecutables ... comprobando si estamos compilando de forma cruzada ... sin comprobar el sufijo de los archivos de objeto ... . o comprobando si estamos usando el compilador GNU C ... sí comprobando si gcc acepta -g ... sí comprobando la opción gcc para aceptar ISO C89 ... no es necesario comprobar cómo ejecutar el preprocesador C ... gcc - E comprobando la opción gcc para aceptar ISO C99 ... -std = gnu99 comprobando pcre-config ... false
configure: error: pcre-config para libpcre no encontrado. Se requiere PCRE y está disponible en http://pcre.org/
PCRE son las siglas de Perl Compatible Regular Expressions, y este error obtuvo una solución fácil. Solo tienes que instalar el paquete pcre-devel.
yum instalar pcre-devel
Aún no ha terminado, tengo otro en el próximo intento relacionado con OpenSSL.
OpenSSL version is too old
verificando si habilitar mod_slotmem_plain ... sin verificar si habilitar mod_ssl ... verificando dependencias verificando OpenSSL ... verificando el directorio base de OpenSSL proporcionado por el usuario ... ./configure: línea 25426: cd: / usr / bin / openssl: No es un directorio /root/httpd-2.4.25 agregando "-I / root / httpd-2.4.25 / include" a CPPFLAGS configurando MOD_CFLAGS a "-I / root / httpd-2.4.25 / include" configurando ab_CFLAGS a "-I / root / httpd-2.4.25 / include" agregando "-L / root / httpd-2.4.25 / lib" a LDFLAGS configurando MOD_LDFLAGS en "-L / root / httpd-2.4.25 / lib" comprobando la versión de OpenSSL> = 0.9.8a ... FAILED configure: ADVERTENCIA: La versión de OpenSSL es demasiado antigua sin comprobar si se habilita mod_ssl ... configure: error: se ha solicitado mod_ssl pero no se puede construir debido a fallas de requisitos previos [root @ chandan httpd-2.4.25] #
Lo primero que tienes que asegurarte es que tienes la última versión de OpenSSL que era en mi caso, así que necesitaba instalar el paquete de desarrollo, y estuvo bien.
yum install openssl-devel
xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
Mientras compilaba APR, recibí este error.
[root @ instance-1 apr-util-1.6.1] # make make [1]: Ingresando al directorio `/opt/temp/apr-util-1.6.1 ' / bin / sh / usr / local / apr / build-1 / libtool --silent --mode = compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I / opt / temp / apr-util-1.6.1 / include -I / opt / temp / apr-util-1.6.1 / include / private -I / usr / local / apr / include / apr-1 -o xml / apr_xml.lo -c xml / apr_xml.c && touch xml / apr_xml.lo xml / apr_xml.c: 35: 19: error fatal: expat.h: No existe tal archivo o directorio #incluir ^ compilación terminada. make [1]: *** [xml / apr_xml.lo] Error 1
Si recibe este error, puede resolverlo instalando expat-devel
paquete.
yum instalar expat-devel
configure: error: no acceptable C compiler found in $PATH
El compilador C no encontrado es típico de cualquier compilación de software, y puede solucionarlo instalando el compilador.
yum install gcc
nghttp2 version is too old
Esto es específico para cuando intentas instalar Apache con HTTP / 2. Obtendrá el siguiente error.
checking whether to enable mod_http2... checking dependencies
checking for OpenSSL... (cached) yes
setting MOD_LDFLAGS to " -lssl -lcrypto -lrt -lcrypt -lpthread"
setting MOD_CFLAGS to " "
setting MOD_CPPFLAGS to "-DH2_OPENSSL"
checking for nghttp2... checking for user-provided nghttp2 base directory... none
checking for pkg-config along ... checking for nghttp2 version >= 1.2.1... FAILED
configure: WARNING: nghttp2 version is too old
no
checking whether to enable mod_http2... configure: error: mod_http2 has been requested but can not be built due to prerequisite failures
Y, si es así, puede solucionarlo instalando nghttp2 como se muestra a continuación.
- Descargue la última versión de nghttp2 de aquí
wget https://github.com/nghttp2/nghttp2/releases/download/v1.37.0/nghttp2-1.37.0.tar.gz
- Extrae el archivo descargado
tar -xvf nghttp2-1.37.0.tar.gz
- Creará una nueva carpeta, entra en ella y ejecuta lo siguiente
./configure
make
make install
Una vez hecho esto sin errores, vuelva a ejecutar la compilación fuente de Apache con HTTP2. Debería estar bien.
Finalmente, pude instalar Apache con éxito. Si está interesado en aprender sobre la administración del servidor HTTP Apache, consulte este curso en línea.