El Apache webserver es un servidor web HTTP popular y de código abierto que continúa disfrutando de una participación de mercado masiva en la industria del hospedaje. Viene con un montón de características que incluyen mejoras de módulos, compatibilidad con múltiples protocolos, configuración simplificada y compatibilidad con varios idiomas, por mencionar solo algunas.
Lea también :Cómo instalar Nginx en CentOS 8
En esta guía, lo guiaremos a través de la instalación de Apache servidor web en CentOS 8 y RHEL 8 con un entorno de Virtual Host. Al momento de escribir este tutorial, la última versión de Apache es Apache 2.2.43. .
Instalación del servidor web Apache
Para comenzar, primero actualice su CentOS 8 o RHEL 8 lista de paquetes del sistema usando el siguiente comando dnf.
$ sudo dnf update
Una vez completada la actualización, instale Apache servidor web ejecutando el siguiente comando.
$ sudo dnf install httpd
Una vez instalado, puede verificar la versión de Apache ejecutando el comando rpm.
$ rpm -qi httpd
Verificar la versión de Apache
El comando imprime una serie de información, como la versión, la fecha de publicación, la compilación y la arquitectura del paquete.
Para iniciar el servicio web Apache HTTP, ejecute el comando systemctl.
$ sudo systemctl start httpd
Para confirmar si el servicio se está ejecutando, ejecute.
$ sudo systemctl status httpd
Verificar el estado del servicio de Apache
Desde la salida, el 'activo El estado en verde indica que el servidor web Apache está funcionando.
Para despejar cualquier duda de que el servidor web se está ejecutando, solicite una página de prueba de Apache explorando la dirección IP o el nombre de dominio de su servidor como se muestra.
http://server-ip
Puede obtener la IP de su servidor ejecutando el comando ifconfig. Si su servidor está alojado en la nube, puede obtener la IP pública ejecutando el comando curl.
$ curl ifconfig.me OR $ curl -4 icanhazip.com
Encuentra la dirección IP del servidor CentOS
Cuando navega por la dirección IP del servidor, debe mostrar la siguiente página web.
Consulte la página web de Apache
Esta es una confirmación segura de que el servidor web se está ejecutando.
Administración del servidor web Apache
Con Apache instalado y funcionando, puede usar el systemctl herramienta de inspección para gestionar Apache.
Por ejemplo, para detener Apache, ejecute el comando:
$ sudo systemctl stop httpd
Para iniciar el servicio una vez más, ejecute:
$ sudo systemctl start httpd
Si ha realizado cambios en alguno de sus archivos de configuración y necesita reiniciar para aplicar los cambios, ejecute el comando:
$ sudo systemctl restart httpd
Reiniciar el servicio generalmente provoca una interrupción del servicio. Una mejor alternativa es simplemente recargar sin ninguna interrupción con la conexión.
$ sudo systemctl reload httpd
Para iniciar el servidor web Apache automáticamente al arrancar o reiniciar, ejecute el siguiente comando. Esto asegurará que Apache se inicie automáticamente sin su intervención.
$ sudo systemctl enable httpd
Si elige no iniciar el servicio automáticamente al arrancar, ejecute:
$ sudo systemctl disable httpd
Configuración de servidores virtuales Apache
De forma predeterminada, el servidor web Apache está configurado para servir o alojar solo un sitio web. Si desea alojar solo un sitio web, este paso no es necesario. Pero en el caso de que planee alojar múltiples dominios en su servidor, entonces necesita configurar hosts virtuales de Apache.
Un host virtual es un archivo separado que contiene configuraciones que le permiten configurar un dominio separado del predeterminado. Para esta guía, configuraremos un host virtual para el dominio crazytechgeek.info .
El servidor virtual predeterminado se encuentra en /var/www/html
directorio. Esto funciona solo para un solo sitio. Para crear un host virtual separado para nuestro dominio, crearemos otra estructura de directorio dentro de /var/www
directorio como se muestra.
$ sudo mkdir -p /var/www/crazytechgeek.info/html
Además, también puede crear un directorio para almacenar archivos de registro.
$ sudo mkdir -p /var/www/crazytechgeek.info/log
Luego, edite los permisos del archivo usando el $USER
variable de entorno como se muestra.
$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html
Además, ajuste los permisos del directorio webroot como se muestra.
$ sudo chmod -R 755 /var/www
A continuación, cree un ejemplo index.html
archivo como se muestra.
$ sudo vim /var/www/crazytechgeek.info/html/index.html
Presiona la letra 'i'
en el teclado y pegue algún contenido de muestra como se muestra, que se mostrará en el navegador web al probar el host virtual.
<html> <head> <title>Welcome to crazytechgeek.info!</title> </head> <body> <h1>Success! The crazytechgeek.info virtual host is up and perfectly working!</h1> </body> </html>
Guarde y salga del archivo de configuración.
Con el archivo de índice de muestra y el directorio del sitio creados, ahora puede continuar y crear el archivo de host virtual. El archivo de host virtual contendrá la configuración del sitio de su dominio e indicará a Apache cómo responderá a las solicitudes de los clientes.
El archivo de host virtual contendrá la configuración del sitio de su dominio e indicará a Apache cómo responderá a las solicitudes de los clientes. Pero para continuar, debe crear 2 directorios:los sites-available
y sites-enabled
directorios.
El archivo de host virtual se almacenará en los sites-available
directorio mientras que el sites-enabled
el directorio contendrá el enlace simbólico al host virtual.
Cree ambos directorios como se muestra.
$ sudo mkdir /etc/httpd/sites-available $ sudo mkdir /etc/httpd/sites-enabled
A continuación, modifique el archivo de configuración principal del servidor web Apache e indique a Apache dónde ubicar el host virtual dentro del directorio habilitado para sitios.
$ sudo vim /etc/httpd/conf/httpd.conf
Agregue la línea como se muestra al final del archivo de configuración.
IncludeOptional sites-enabled/*.conf
Guardar y salir.
Ahora cree un archivo de host virtual como se muestra:
$ sudo vim /etc/httpd/sites-available/crazytechgeek.info
Pegue el contenido a continuación y reemplace crazytechgeek.info
con su propio nombre de dominio.
<VirtualHost *:80> ServerName www.crazytechgeek.info ServerAlias crazytechgeek.info DocumentRoot /var/www/crazytechgeek.info/html ErrorLog /var/www/crazytechgeek.info/log/error.log CustomLog /var/www/crazytechgeek.info/log/requests.log combined </VirtualHost>
Guarde y salga del archivo.
Ahora habilite el archivo de host virtual creando un enlace simbólico en sites-enabled
directorio.
$ sudo ln -s /etc/httpd/sites-available/crazytechgeek.info.conf /etc/httpd/sites-enabled/crazytechgeek.info.conf
Ajuste de permisos de SELinux para hosts virtuales
Hay 2 enfoques para ajustar las políticas de Apache de SELinux:ajustar las políticas de ajuste universalmente y las políticas en un directorio. Se prefiere este último porque es más preferido.
Ajuste de las políticas de SELinux en un directorio
Edición de SELinux Los permisos para el directorio de registro le brindan un control absoluto sobre las políticas del servidor web de Apache. Este método es bastante largo y requiere que configure manualmente el tipo de contexto para directorios adicionales especificados en el archivo de configuración del host virtual.
Antes de comenzar, primero confirme el tipo de contexto asignado al directorio de registro por SELinux:
$ sudo ls -dlZ /var/www/crazytechgeek.info/log/
El resultado debe ser similar al que tenemos a continuación.
Establecer políticas de SELinux en el directorio de registros de Apache
Desde la salida, el contexto establecido es httpd_sys_content_t . Esto indica que el servidor web solo puede leer archivos en el directorio de registro. Debe cambiar este contexto a httpd_log_t para permitir que Apache genere y agregue entradas de registro al directorio.
Por lo tanto, ejecute el comando:
$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"
Si obtiene el error debajo de "semanage:comando no encontrado".
Implica que los paquetes que proporcionan semanage El comando no está instalado. Para corregir este error, debe instalar esos paquetes. Pero primero, verifique qué paquetes proporcionan el comando semanage ejecutando:
$ sudo dnf whatprovides /usr/sbin/semanage
El resultado nos da el paquete que proporciona semanage, que es policycoreutils-python-utils .
Ahora instale el paquete como se muestra usando el administrador de paquetes DNF.
$ sudo dnf install policycoreutils-python-utils
El comando para cambiar el contexto ahora debería funcionar.
$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"
Para guardar los cambios y hacerlos persistentes, emita restorecon comando como se muestra:
$ sudo restorecon -R -v /var/www/crazytechgeek.info/log
Puede confirmar los cambios ejecutando una vez más el comando:
$ sudo ls -dlZ /var/www/crazytechgeek.info/log/
Compruebe el tipo de contexto de SELinux
Asegúrese de tener en cuenta que el tipo de contexto ha cambiado a httpd_log_t
como se ve en la salida.
Reinicie Apache para que se apliquen los cambios.
$ sudo systemctl restart httpd
Ahora puede confirmar si Apache está guardando archivos de registro en el directorio de registro enumerando su contenido como se muestra:
$ ls -l /var/www/crazytechgeek.info/log/
Debería poder ver dos archivos de registro como se muestra:registro de errores y archivos de registro de solicitudes.
Compruebe los archivos de registro de Apache
Prueba del servidor virtual de Apache
Por último, debe asegurarse de que el servidor web Apache esté sirviendo su archivo de host virtual. Para hacer esto, abra su navegador y vaya a la dirección IP o nombre de dominio de su servidor:
http://domain-name
Compruebe el host virtual de Apache para el sitio web
¡Perfecto! Esto indica que todo salió bien y que nuestro host virtual está funcionando como se esperaba.
Conclusión
En esta guía, hemos aprendido cómo instalar Apache servidor web en CentOS 8 y RHEL 8 y también cómo configurar un archivo de host virtual para servir contenido para un dominio adicional. Siéntase libre de configurar múltiples archivos de host virtual como lo considere adecuado para acomodar dominios adicionales.
Si desea configurar una pila de alojamiento completa, le recomiendo que instale una pila LAMP en CentOS 8.
Compartir es cuidar…Compartir en FacebookCompartir en TwitterCompartir en LinkedinCompartir en Reddit