Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Apache HTTP Última actualización: 15 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Instalar Apache HTTP siempre es divertido. Hace unos días, estaba instalación de Apache 2.4 en CentOS VM y encontré múltiples errores.

Pensé que sería útil reunirlo para tenerlo como referencia.

APR no encontrado

[root@chandan httpd-2.4.25]# ./configure --enable-ssl
comprobando la distribución elegida... Apache
comprobando si funciona mkdir -p... yes
comprobando si grep maneja líneas largas y -e... /usr/bin/grep
buscando egrep... /usr/bin/grep -E
comprobando el tipo de sistema de compilación... x86_64-unknown-linux-gnu
comprobando el tipo de sistema anfitrión... x86_64-unknown-linux-gnu
comprobando el tipo de sistema de destino... x86_64-unknown-linux-gnu
configure:
configure: Configurando la librería Apache Portable Runtime...
configure: 
comprobación de APR... no
configure: error: APR not found.  Por favor, lea la documentación.
[root@chandan httpd-2.4.25]#

APR significa "Apache Portable Runtime" y es necesario compilar desde el código fuente. Si usted está en la misma situación que yo, entonces lo siguiente rescate a ti.

En primer lugarnecesita instalar APR.

  • Descargue la última versión de APR con wget
wget https://www-eu.apache.org/dist/apr/apr-1.6.3.tar.gz .
  • Extraiga el archivo descargado
gunzip -c apr-1.6.3.tar.gz | tar xvf -
  • creará una nueva carpeta "apr-1.6.3"
  • Entra y compila con el comando configure
./configurar

Tardará unos segundos y, una vez hecho esto, aparecerá un mensaje (asegúrese de que no se produce ningún error).

  • El último paso sería instalar utilizando el comando make
make
make install

Una vez hecho esto, intenté instalar Apache y obtuve otro error.

APR-util no encontrado

[root@chandan httpd-2.4.25]# ./configure --enable-ssl --enable-so
comprobando la distribución elegida... Apache
comprobando si funciona mkdir -p... yes
comprobando si grep maneja líneas largas y -e... /usr/bin/grep
buscando egrep... /usr/bin/grep -E
comprobando el tipo de sistema de compilación... x86_64-unknown-linux-gnu
comprobando el tipo de sistema anfitrión... x86_64-unknown-linux-gnu
comprobando el tipo de sistema de destino... x86_64-unknown-linux-gnu
configure:
configure: Configurando la librería Apache Portable Runtime...
configure:
comprobando APR... yes
  configurando CC a "gcc".
  estableciendo CPP a "gcc -E"
  poniendo CFLAGS a " -g -O2 -pthread"
  poniendo CPPFLAGS a " -DLINUX -D_REENTRANT -D_GNU_SOURCE"
  poniendo LDFLAGS a " "
configure:
configure: Configurando la librería Apache Portable Runtime Utility...
configure: 
comprobando APR-util... no
configure: error: APR-util no encontrado.  Por favor, lea la documentación.
[root@chandan httpd-2.4.25]#

En caso de que también tengas el error "APR-util not found" entonces tienes que instale lo siguiente.

  • Descargar la última versión de 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 | tar xvf -
  • Entra en la carpeta recién creada "apr-util-1.6.1" e instálala utilizando los siguientes comandos
./configure --with-apr=/usr/local/apr/bin/apr-1-config
haga
make instalar

Intenté instalar Apache de nuevo y obtuve otro error.

pcre-config para libpcre no encontrado

Esto es lo que tengo.

comprobando si el compilador de C funciona... yes
comprobación del nombre del archivo de salida por defecto del compilador C... a.out
comprobando el sufijo de los ejecutables...
Comprobación de la compilación cruzada... no
comprobar el sufijo de los archivos objeto... o
comprobar si estamos utilizando el compilador GNU C... sí
comprobar si gcc acepta -g... sí
comprobar si gcc acepta la opción ISO C89... no es necesario
comprobar cómo se ejecuta el preprocesador C... gcc -E
comprobar si gcc acepta ISO C99... -std=gnu99
comprobación de pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE es necesario y está disponible en http://pcre.org/

PCRE significa Expresiones Regulares Compatibles con Perl, y este error obtuvo un solución fácil. Sólo tiene que instalar el paquete pcre-devel.

yum install pcre-devel

Aún no ha terminado, tengo otro en el próximo intento relacionado con OpenSSL.

La versión de OpenSSL es demasiado antigua

comprobando si está habilitado mod_slotmem_plain... no
comprobando si habilitar mod_ssl... comprobando dependencias
comprobando OpenSSL... comprobando 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
  añadiendo "-I/root/httpd-2.4.25/include" a CPPFLAGS
  poniendo MOD_CFLAGS a "-I/root/httpd-2.4.25/include".
  Establecer ab_CFLAGS a "-I/root/httpd-2.4.25/include".
  añadir "-L/root/httpd-2.4.25/lib" a LDFLAGS
  establecer MOD_LDFLAGS a "-L/root/httpd-2.4.25/lib".
comprobando versión de OpenSSL >= 0.9.8a... FALLÓ
configurar: ADVERTENCIA: La versión de OpenSSL es demasiado antigua
no
comprobando si habilitar mod_ssl... configure: error: mod_ssl ha sido solicitado pero no puede ser construido debido a fallos en los prerrequisitos
[root@chandan httpd-2.4.25]#

Lo primero que tienes que asegurarte de que tienes la última versión de OpenSSL que era en mi caso, por lo que necesitaba para instalar el paquete de desarrollo...y estuvo bien.

yum install openssl-devel

xml/apr_xml.c:35:19: error fatal: expat.h: No such file or directory

Mientras compilaba APR, recibí este error.

[root@instance-1 apr-util-1.6.1]# make
make[1]: Entrando en el 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 such file or directory
 #include
                   ^
compilación terminada.
make[1]: *** [xml/apr_xml.lo] Error 1

Si recibe este error, puede solucionarlo instalando expat-devel paquete.

yum install expat-devel

configure: error: no se ha encontrado ningún compilador de C aceptable en $PATH

El compilador de C no encontrado es típico de cualquier compilación de software, y puede solucionarlo instalando el compilador.

yum install gcc

La versión de nghttp2 es demasiado antigua

Esto es específico para cuando se intenta instalar Apache con HTTP/2. Aparecerá 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í, puedes arreglarlo instalando nghttp2 como se indica a continuación.

  • Descargue la última versión de nghttp2 desde aquí
wget https://github.com/nghttp2/nghttp2/releases/download/v1.37.0/nghttp2-1.37.0.tar.gz
  • Extraiga el archivo descargado
tar -xvf nghttp2-1.37.0.tar.gz
  • Se creará una nueva carpeta, entra en ella y ejecuta lo siguiente
./configure
make
make install

Una vez hecho esto sin errores, ejecute de nuevo la compilación del código fuente de Apache con HTTP2. Debería funcionar correctamente.

Finalmente, pude instalar Apache con éxito. Si usted está interesado en aprender acerca de la administración del servidor HTTP Apache, a continuación, echa un vistazo a este curso en línea.

  • Chandan Kumar
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre Apache HTTP
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba el lunes
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder