Explicamos paso a paso cómo montar un servidor web sobre una máquina virtual con Linux CentOS 7 Minimal. Utilizaremos para ello Apache + PHP + MySQL (MariaDB). Instalaremos phpMyAdmin para la gestión vía web de MySQL.

Requisitos para instalar Apache PHP MySQL (MariaDB) en equipo Linux CentOS 7 Minimal

Necesitaremos disponer de los siguientes requisitos para montar un servidor web con Linux:

  • Un equipo o máquina virtual con Linux CentOS 7 Minimal.
  • El equipo debe tener correctamente configuradas las opciones de red: IP, hostname, DNS, puerta de enlace.
  • El equipo debe disponer de conexión a Internet.
  • Deberemos disponer de un usuario administrador del equipo para realizar las instalaciones y configuraciones de paquetes.

Instalar Apache (servidor web) en Linux CentOS 7 Minimal

Para instalar Apache será suficiente con ejecutar el siguiente comando Linux (si lo hacemos con un usuario no root añadiremos sudo delante):

sudo yum install httpd

Nos indicará que iniciará la descarga de los paquetes necesarios, pulsaremos y y luego INTRO:

Instalar Apache (servidor web) en Linux CentOS 7 Minimal

Si la instalación de Apache ha sido correcta nos mostrará:

Instalar Apache (servidor web) en Linux CentOS 7 Minimal

Iniciaremos el servicio de Apache con el comando:

sudo systemctl start httpd.service

Habilitaremos la carga del servicio en el arranque del equipo con el comando:

sudo systemctl enable httpd.service

Instalar Apache (servidor web) en Linux CentOS 7 Minimal

Para habilitar el acceso externo a nuestro servidor web deberemos establecer las reglas en el cortafuegos, podemos hacerlo con los siguientes comandos:

Si los comandos anteriores no funcionan (depende de la versión de CentOS y del firewall) podremos usar estos otros:

Instalar Apache (servidor web) en Linux CentOS 7 Minimal

Si el servidor web ha quedado correctamente instalado y configurado podremos acceder a la web de inicio de ejemplo abriendo un navegador e introduciendo la IP o nombre de red del equipo Linux en la URL (en la barra de direcciones), nos debe mostrar esta página:

Instalar Apache (servidor web) en Linux CentOS 7 Minimal

Instalar MySQL – Maria DB (Base de datos) en Linux CentOS 7 Minimal

Instalaremos ahora la base de datos, en nuestro caso MariaDB 100% compatible con MySQL en todos los sentidos. Para instalarla en Linux CentOS 7 Minimal ejecutaremos el siguiente comando:

sudo yum install mariadb-server mariadb

Responderemos y a la pregunta y pulsaremos INTRO:

Instalar MySQL - Maria DB (Base de datos) en Linux CentOS 7 Minimal

Si todo es correcto nos mostrará:

Instalar MySQL - Maria DB (Base de datos) en Linux CentOS 7 Minimal

Iniciaremos el servicio de mariadb con el comando:

sudo systemctl start mariadb

Y aplicaremos el script de seguridad de MySQL (MariaDB) con el comando:

sudo mysql_secure_installation

Que nos solicitará la contraseña actual del usuario root de MySQL (MariaDB) que es vacía, por lo tanto pulsaremos INTRO:

Instalar MySQL - Maria DB (Base de datos) en Linux CentOS 7 Minimal

Nos mostrará la opción de establecer la contraseña del usuario root de MySQL (MariaDB), pulsaremos INTRO:

Instalar MySQL - Maria DB (Base de datos) en Linux CentOS 7 Minimal

Introduciremos la contraseña para este usuario (dos veces). A continuación nos indicará si queremos eliminar el usuario anónimo, pulsaremos INTRO para eliminarlo:

Instalar MySQL - Maria DB (Base de datos) en Linux CentOS 7 Minimal

Y nos dará la opción de desactivar el acceso remoto para el usuario root. Por seguridad es recomendable que el superusuario root de MySQL (MariaDB) no tenga acceso remoto:

Instalar MySQL - Maria DB (Base de datos) en Linux CentOS 7 Minimal

También nos dará la posibilidad de eliminar la base de datos de pruebas que se crea por defecto:

Instalar MySQL - Maria DB (Base de datos) en Linux CentOS 7 Minimal

Y por último recargará la tabla de privilegios:

Instalar MySQL - Maria DB (Base de datos) en Linux CentOS 7 Minimal

Para que el servicio de MariaDB se inicie al arrancar el equipo ejecutaremos el siguiente comando:

sudo systemctl enable mariadb.service

Que nos indicará que se ha creado un enlace simbólico, con el texto:

Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

Podremos comprobar que la base de datos MariaDB está funcionando correctamente ejecutando el siguiente comando:

Y ejecutar algún comando de MySQL, por ejemplo el que muestra todos los catálogos:

show databases;

Instalar MySQL - Maria DB (Base de datos) en Linux CentOS 7 Minimal

Instalar PHP (intérprete de comandos) en Linux CentOS 7 Minimal

Instalaremos PHP 5.4 y el soporte de PHP para MySQL (MariaDB) con el siguiente comando Linux:

yum install php php-mysql

Reiniciaremos el servicio de Apache para que cargue las librerías de PHP:

sudo systemctl restart httpd.service

Instalar PHP (intérprete de comandos) en Linux CentOS 7 Minimal

Una forma de comprobar que funciona correctamente es crear un fichero con extensión .php en la carpeta de nuestro sitio web, que por defecto en Apache y Linux suele ser:

/var/www/html

Accederemos a esta carpeta con:

cd /var/www/html

Y crearemos el fichero, por ejemplo, comp.php con el comando:

vi comp.php

Instalar PHP (intérprete de comandos) en Linux CentOS 7 Minimal
Instalar PHP (intérprete de comandos) en Linux CentOS 7 Minimal

Guardaremos los cambios y cerraremos pulsando escape y después escribiendo:

:wq

Ahora, desde un navegador web, desde cualquier equipo de la red, introduciendo la IP o nombre de red del equipo linux y /comp.php nos debe aparecer:

Instalar PHP (intérprete de comandos) en Linux CentOS 7 Minimal

Es recomendable eliminar este fichero tras la verificación por cuestiones de seguridad:

rm /var/www/html/comp.php

Como hemos visto, sin indicar nada, al ejecutar el comando:

yum install php php-mysql

Se ha instalado la versión 5.4 de PHP, que es la establecida por defecto a día de creación de esta artículo (abril de 2018). Si queremos instalar otra versión deberemos utilizar otro método de instalación.

Si necesitamos módulos de PHP específicos para Joomla, WordPress, Drupal y otros deberemos instalarlos, por ejemplo:

yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel

Y reiniciar el servicio de Apache para que se apliquen los cambios:

systemctl restart httpd.service

Instalar phpMyAdmin para administrar el servidor de MySQL – MariaDB vía web

Si necesitamos administrar la base de datos MariaDB (crear catálogos, importar y exportar tablas, crear tablas, editar y seleccionar registros, …) necesitaremos algún cliente de administración de MySQL. Uno de ellos, el más usado por ser vía web y no requerir de instalación en los clientes, es phpMyAdmin. A continuación indicamos cómo se instala.

En primer lugar haremos una actualización de todos los paquetes de Linux CentOS con:

yum update

Después instalaremos el paquete epel-release, que es un grupo de paquetes especial para Linux Empresarial, entre otros contiene el paquete phpMyAdmin:

yum install epel-release

Finalmente instalaremos phpMyAdmin ejecutando ejecutando este comando Linux:

yum -y install phpmyadmin

Tras la instalación podremos configurar phpMyAdmin editando el fichero /etc/httpd/conf.d/phpMyAdmin.conf:

vi /etc/httpd/conf.d/phpMyAdmin.conf

Instalar phpMyAdmin para administrar el servidor de MySQL - MariaDB vía web

Pulsaremos la tecla «a» para editar el fichero y comentaremos las siguientes líneas y añadiremos la línea Require all granted para permitir el acceso desde cualquier IP (esto no es lo recomendable, lo haremos solamente para verificar la instalación):

<IfModule mod_authz_core.c>
# Apache 2.4
# <RequireAny>
# Require ip 127.0.0.1
# Require ip ::1
# </RequireAny>

Require all granted

</IfModule>

Instalar phpMyAdmin para administrar el servidor de MySQL - MariaDB vía web

Guardaremos los cambios pulsando escape, :wq e INTRO y reiniciaremos el servicio de Apache:

systemctl restart httpd.service

Desde cualquier equipo de la red introduciremos en el navegador la URL:

http://ip_servidor/phpmyadmin

Nos pedirá usuario y contraseña de la base de datos y accederemos a su administración vía web:

Instalar phpMyAdmin para administrar el servidor de MySQL - MariaDB vía web