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
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