Estaba mirando para hacer una entrada muy interesante y haciendo la explicación me he dado que podía separar la entrada en dos y sacar primero esta que seguramente la necesitaré para muchas otras entradas a partir de ahora. La instalación de un servidor web completo (con MySQL, PHP, HTTP..) es algo realmente fácil de instalar y configurar pero nunca me había puesto a escribir una entrada sobre ello (y mira que estoy cansado de hacer este proceso…) así que allí va mi explicación sobre como instalar y configurar un servidor web en CentOS.

Lo sé, siempre escribo tutoriales para Debian y ahora saco esta para CentOS… La razón es simple, durante mi anterior curso hicimos todas las practicas en CentOS por lo cual tengo mucha documentación escrita en CentOS y quiero aprovecharla. Pero bueno, en Debian tampoco cambia mucho la cosa.

La versión de CentOS que voy a usar es la Minimal, ya que vamos a trabajar con un servidor web, esta versión es suficiente para trabajar desde cero y explicar unas cosas de CentOS. Además la vamos a instalar en una maquina virtual con VirtualBox y configurar siempre vía SSH bajo root. ¡Al lío!

Configuración básica para CentOS

Lo primero que vamos hacer es instalar unos paquetes que no vienen con esta versión. Desde la maquina virtual abrimos sesión como root e instalamos lo siguiente:

# yum update

Una vez actualizado los paquetes, instalamos unos nuevos:

# yum install net-tools nano firewalld

Las net-tools son necesarias para saber que IP tiene nuestra maquina, ya que la versión Minimal viene sin el comando ifconfig (esto con Debian no ocurre…). A partir de ahora podremos ver nuestra IP con el comando de toda la vida:

# ifconfig

Nos conectamos vía SSH:

# ssh user@IP_Servidor

Una vez conectados por SSH, desactivaremos el SELinux para evitar problemas. Editamos el fichero /etc/selinux/config y modificamos enforcing por disabled:

SELINUX=disabled

Después de guardar, ejecutamos esto para efectuar los cambios en el núcleo:

# setenforce 0

Instalación servidor web [httpd]

Una vez hemos realizado los pasos previos ahora vamos a instalar el servidor web, generalmente todas las distribuciones usan un paquete proporcionado por la fundación Apache, pero en Red Hat todo cambia y hay que usar httpd. Lo instalamos:

# yum install httpd

Iniciamos el servicio al arranque y lo iniciamos:

# systemctl enable httpd
# systemctl start httpd

Ahora abrimos puertos del protocolo HTTP para poder acceder desde cualquier cliente, pero primero iniciamos el cortafuegos:

# systemctl start firewalld

Y ahora abrimos puertos:

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

Ahora si desde nuestro navegador escribimos la IP del servidor entraremos en la web por defecto:

httpdweb

Instalación de PHP para HTTPD

Por lo general hay que instalar unos paquetes específicos para luego usar conjuntamente con MariaDB y phpMyAdmin, son estos:

# yum install php php-mysql php-pdo php-gd php-mbstring

Una vez hemos instalado PHP, comprobamos que se ha instalado correctamente creando un fichero PHP en nuestro servidor web para que nos muestre toda la información:

echo "<?php phpinfo(); ?>" > /var/www/html/info.php

Luego reiniciamos el servicio:

# systemctl restart httpd

Y entramos con el navegador a 192.168.1.20/info.php:

phpinfo

Instalación y configuración de MariaDB

Ahora vamos a instalar un servidor de bases de datos para las aplicaciones que podamos instalar en nuestro servidor web, para ello instalaremos MariaDB que está basado en MySLQ.

# yum install mariadb mariadb-server

Como antes, iniciamos servicio al arranque y lo iniciamos:

# systemctl enable mariadb
# systemctl start mariadb

Una vez iniciado, no podremos iniciar sesión con MariaDB porque no hemos configurado aún el servidor, para ello:

# mysql_secure_instalation

Y respondemos a las preguntas:

Enter
Y
Escribimos nuestra nueva contraseña
Y (para eliminar los usuarios anónimos)
Y (para desactivar el login remoto)
Y (para eliminar las bases de datos de ejemplo)
Y (para recargar los permisos en las tablas)

Y listo, ya hemos configurado MariaDB, ahora podremos conectarnos mediante terminal:

# myslq -u root -p

mysql

Instalación y configuración de phpMyAdmin

Oficialmente los repositorios para RHEL 7.0 o CentOS 7.0 no proporcionan ningún paquete binario para la interfaz web de PhpMyAdmin. Si no te sientes cómodo usando la línea de comandos de MySQL para gestionar bases de datos se puede instalar PhpMyAdmin añadiendo un repositorio nuevo a CentOS llamado epel-release y lo añadimos de la siguiente manera:

# yum install epel-release

Luego ya podemos instalar el paquete phpmyadmin:

# yum install phpmyadmin

Una vez instalado, toca hacer una pequeña configuración. Tenemos que modificar el fichero creado para HTTPD:

# nano /etc/httpd/conf.d/phpMyAdmin.conf

Tenemos que buscar lo siguiente:

# Apache 2.4
<RequireAny>
    Require ip 127.0.0.1
    Require ip ::1
</RequireAny>

Y dejarlo de esta manera:

# Apache 2.4
<RequireAny>
    #Require ip 127.0.0.1
    #Require ip ::1
    Require all granted
</RequireAny>

Tendremos que hacerlo dos veces porque más abajo del primero se repite la misma estructura. Una vez modificado el fichero, toca reiniciar el servidor web:

# systemctl restart httpd

Y una vez reiniciado podremos acceder desde el navegador 192.168.1.20/phpmyadmin:

phpmyadmin

Y hasta aquí todo el proceso para tener un servidor LAMP en nuestro servidor. Ahora ya podremos instalar cualquier aplicación web ya sea WordPress, Drupal, Joomla!, MediaWiki, Moodle, etc. Eso si, nos faltaría activar el módulo para SSL que lo dejaremos para otro momento.

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación