Instalación de Apache en CentOS 8

La instalación inicial de un servidor web con Apache para Centos requiere pocos pasos, aunque siempre hay que tener en cuenta la seguridad del sistema para que permita el acceso a las páginas web. Para las distribuciones basadas en Red-Hat los paquetes de Apache son llamados httpd.

Instalación del paquete httpd

Ejecutaremos el siguiente comando para instarlo:

# dnf install httpd

Una vez instalado deberemos activarlo y habilitarlo para que el servicio vuelva a iniciarse al reiniciar el servidor:

# systemctl start httpd

# systemctl enable httpd

Comprobamos que el servicio está en marcha:

# systemctl status httpd

apache1

La estructura de ficheros y directorios que se crea es la siguiente:

  • /etc/httpd/conf/httpd.conf : Fichero principal de configuración
  • /etc/httpd/: Localización de todos los ficheros de configuración
  • /etc/httpd/conf.d/: Ubicación de todos los fichero de configuración incluidos en el httpd.conf
  • /etc/httpd/conf.modules.d/: Localización de los fichero de configuración de los módulos
  • /var/log/httpd/: Ubicación de los logs de Apache
  • /var/log/httpd/access_log: Log de acceso a las webs servidas por este servidor
  • /var/log/httpd/error_log : Errores del servidor

 

Configuración de la seguridad del sistema

El siguiente paso es comprobar que SELinux permita el acceso de las peticiones por los puerto que vamos a utilizar, en este caso por el 80 y 443.

# semanage port –l | grep http

En el caso de utilizar algún puerto diferente de los estándar, por ejemplo el 81 tendríamos que ejecutar el siguiente comando para agregarlo:

# semanage port -a -t http_port_t -p tcp 81

Además de la protección del SELinux tenemos la del firewall (firewalld) del propio sistema, tendremos que añadir los servicios http y https para poder acceder a las webs, ejecutaremos los siguientes comandos:

# firewall-cmd --permanent --zone=public --add-service=http

# firewall-cmd --permanent --zone=public --add-service=https

Recargamos la reglas y comprobamos que se han incluido correctamente:

# firewall-cmd –reload

# firewall-cmd --list-all | grep services

 

 Instalación y configuración de los módulos de php

Una vez el servidor Apache está funcionando hay que configurar los módulos que dan soporte a los lenguajes de programación  que se utiliza en las webs, en este caso configuraremos el módulo de php.

Instalaremos php y sus módulos más utilizados:

# dnf install php php-opcache php-gd php-curl php-mysqlnd

Habilitaremos el módulo php-fpm (manejador de procesos):

# systemctl enable –now php-fpm

Si utilizamos SELinux añadiremos al contexto de httpd la posibilidad de lectura y escritura en el directorio donde tengamos la webs:

# semanage fcontext -a -t httpd_sys_rw_content_t /var/www/html

# restorecon -v /var/www/html

Finalmente reiniciamos el servicio de httpd:

# systemctl restart httpd