Cómo instalar Linux CentOS 7.0 (minimal) en un equipo físico y en una máquina virtual. Mostramos cómo montar un servidor web con Apache y PHP y un servidor de base de datos con MySQL Server sobre Linux CentOS 7. Explicamos cómo configurar Apache y MySQL para permitir conexiones externas e instalamos phpMyAdmin para administrar vía web MySQL Server.

Requisitos para instalar Linux CentOS en equipo físico o en máquina virtual

Como siempre, para montar un servidor con un sistema operativo, sea Windows Server o Linux, tendremos dos opciones:

  • Montaje sobre equipo físico, en cuyo caso el sistema operativo del equipo será Linux o Windows.
  • Montaje sobre un sistema de virtualización como VMware ESX, en cuyo caso el sistema operativo Linux o Windows quedará instalado en una máquina virtual sobre este sistema de virtualización.

Según las necesidades y recursos de nuestra organización optaremos por un método u otro. Lo habitual es montarlo en una máquina virtual. Dado que los sistemas virtualizados tienen mayor posibilidad de backup, replicación, recuperación ante desastres, snaphot, etc.

En nuestro caso montaremos una máquina virtual sobre un servidor host con VMware ESXi 5.1. En dicha máquina virtual instalaremos Linux CentOS Minimal y montaremos el servidor web y de base de datos MySQL. El proceso que explicaremos a continuación es similar en el caso de optar por la opción de montar un servidor físico Linux sin virtualización, solo variará el método de arranque inicial del ISO con la instalación de Linux CentOS. Y, lógicamente, para el caso del servidor físico no habrá que crear máquina virtual alguna ni disponer de VMware ESXi.

Requisitos para instalar Linux CentOS Minimal en equipo físico

Si optamos por montar nuestro servidor web con Linux CentOS en un equipo físico (sin virtualización) deberemos descargar el fichero ISO de Linux CentOS, en nuestro caso la versión 7 Minimal:

https://www.centos.org/download/

en concreto el fichero: CentOS-7.0-1406-x86_64-Minimal.iso

Requisitos para instalar Linux CentOS Minimal en equipo físico

y generar un CD/DVD de arranque con él. A continuación mostramos dos tutoriales para generar un CD/DVD a partir de un fichero ISO con dos aplicaciones gratuitas:

Una vez creado el CD/DVD deberemos configurar la secuencia de arranque en la BIOS para que en primer lugar intente arrancar desde el lector de CD/DVD. A continuación mostramos algunos tutoriales donde explicamos, entre otras cosas, cómo modificar la secuencia de arranque:

Requisitos para instalar Linux CentOS Minimal en una máquina virtual

Si optamos por montar nuestro servidor web Linux CentOS virtualizado, deberemos disponer de un sistema de virtualización. A continuación mostramos algunos tutoriales sobre sistemas de virtualización avanzados:

Necesitaremos también disponer del fichero ISO de instalación de Linux CentOS, que podremos descargar desde su web oficial, en nuestro caso para la versión actual de Linux CentOS Minimal hemos usado la URL:

http://mirror.trueinter.net/centos/7.0.1406/isos/x86_64

Y hemos descargado el fichero: CentOS-7.0-1406-x86_64-Minimal.iso

Requisitos para instalar Linux CentOS Minimal en una máquina virtual

Para montar Linux CentOS sobre una máquina virtual necesitaremos crearla previamente, también necesitaremos subir el fichero ISO de Linux CentOS a algún datastore del host VMware ESX. A continuación mostramos un tutorial donde explicamos paso a paso cómo subir el fichero ISO a un datastore de un ESXi, cómo crear una máquina virtual y cómo establecer el fichero ISO como CD/DVD de la máquina virtual:

En el siguiente tutorial mostramos cómo preparar la máquina virtual para arrancar desde la BIOS y configurar la secuencia de arranque:

Instalar Linux CentOS 7.0 Minimal

Una vez preparado nuestro entorno de virtualización o bien nuestro equipo físico, arrancaremos desde el CD/DVD con el ISO de Linux CentOS, seleccionaremos «Install CentOS 7» y pulsaremos INTRO:

Instalar Linux CentOS 7.0 Minimal

Elegiremos el idioma de instalación y pulsaremos «Continuar»:

Instalar Linux CentOS 7.0 Minimal

Configuraremos la instalación pulsando en cada grupo, por ejemplo para la hora y fecha pulsaremos en «FECHA & HORA»:

Instalar Linux CentOS 7.0 Minimal

Estableceremos la zona horaria y pulsaremos «Listo»:

Instalar Linux CentOS 7.0 Minimal

Si estamos instalando la versión no Minimal podremos elegir el software a instalar pulsando en «SELECCIÓN DE SOFTWARE»:

Instalar Linux CentOS 7.0 Minimal

En nuestro caso al estar instalando Linux CentOS Minimal no tendremos disponible software a instalar pues se instalará el básico:

Instalar Linux CentOS 7.0 Minimal

En «FUENTE DE INSTALACIÓN»:

Instalar Linux CentOS 7.0 Minimal

Podremos elegir, de ser necesario, la unidad de CD o ben la ubicación de red desde donde instalaremos CentOS, en nuestro caso dejaremos las opciones por defecto para instalar desde el CD normal del PC:

Instalar Linux CentOS 7.0 Minimal

En «DESTINO DE LA INSTALACIÓN»:

Instalar Linux CentOS 7.0 Minimal

Es importante que marquemos el disco duro donde se instalará Linux CentOS, teniendo en cuenta que en nuestro caso dejaremos marcada la opción «Configurar particionamiento automático», de forma que el asistente de instalación de Linux CentOS realizará el particionado necesario de forma automática (los datos que haya en el disco duro seleccionado serán eliminados):

Instalar Linux CentOS 7.0 Minimal

En «RED Y NOMBRE DE HOST»:

Instalar Linux CentOS 7.0 Minimal

Podremos especificar el nombre DNS o hostname (en Nombre de máquina, por ejemplo SRVWEBMYSQL). Si tenemos servidor de DHCP en nuestra red y activamos la tarjeta como se muestra en la imagen, el asistente de instalación obtendrá una IP dinámica por DHCP y la configuración de red. Si queremos establecerla manualmente pulsaremos en «Configurar»:

Instalar Linux CentOS 7.0 Minimal

En la pestaña «Ajustes de IPv4» podremos especificar la configuración de red manual (IP, puerta de enlace gateway, DNS):

Instalar Linux CentOS 7.0 Minimal

Una vez realizada la configuración inicial de Linux CentOS pulsaremos en «Comenzar instalación»:

Instalar Linux CentOS 7.0 Minimal

Se iniciará el particionado, formateo y copia de ficheros para instalar definitivamente Linux CentOS 7 Minimal en nuestro PC o servidor. Durante la instalación podremos establecer los ajustes del usuario, creando una contraseña para el superusuario root pulsando en «CONTRASEÑA DE ROOT»:

Instalar Linux CentOS 7.0 Minimal

Introduciremos una contraseña para el superusuario root y pulsaremos «Listo»:

Instalar Linux CentOS 7.0 Minimal

En la ventana de instalación también podremos crear un usuario pulsando en «CREACIÓN DE USUARIO»:

Instalar Linux CentOS 7.0 Minimal

Introduciremos los datos para el nuevo usuario (nombre completo, usuario, contraseña, etc.):

Instalar Linux CentOS 7.0 Minimal

Tras la instalación el equipo se reiniciará y nos mostrará el menú de inicio, pulsaremos INTRO para realizar un arranque normal en «CentOS Linux, with Linux 3.10.0-123.e17.x86_64»:

Instalar Linux CentOS 7.0 Minimal

Y ya tendremos Linux CentOS 7 Minimal instalado. Hay que tener en cuenta que esta versión no instala ni el modo gráfico ni muchos paquetes típicos, de ahí lo de «Minimal». Es una versión muy interesante para montar servidores que consuman muy pocos recursos tanto de CPU, como de memoria RAM como de espacio en disco. Por lo que serán equipos muy rápidos y producirán pocos errores:

Instalar Linux CentOS 7.0 Minimal

Podremos comprobar el nombre de red DNS del equipo con:

hostname

Y ver la versión del kernel con:

uname -a

Instalar Linux CentOS 7.0 Minimal

También podremos comprobar la IP asignada con:

ip add

Nos mostrará la configuración de cada interfaz de red y el identificativo, en nuestro caso la tarjeta de red principal tiene el identificativo «ens160»:

Instalar Linux CentOS 7.0 Minimal

Y configurar la red manualmente con:

vi /etc/sysconfig/network-scripts/ifcfg-ens160

(donde ens160 será el identificativo de la tarjeta de red que podemos obtener con el comando anterior)

Instalar Linux CentOS 7.0 Minimal

Un ejemplo de fichero de configuración de red en Linux CentOS 7:

HWADDR=»00:0C:XX:XX:XX:XX»
ENGINE=»Ethernet»
BOOTPROTO=»dhcp»
DEFROUTE=»yes»
PEERDNS=»yes»
PEERROUTES=»yes»
IPV4_FAILURE_FATAL=»no»
IPV6INIT=»yes»
IPV6_AUTOCONF=»yes»
IPV6_DEFROUTE=»yes»
IPV6_PEERDNS=»yes»
IPV6_PEERROUTES=»yes»
IPV6_FAILURE_FATAL=»no»
NAME=»ens160″
UUID=»5fc69-xxx-xxx-xxx-xxx»
ONBOOT=»yes»
IPADDR0= «192.168.1.100»
PREFIX0= «24»
GATEWAY0= «192.168.1.1»
DNS1=
«8.8.8.8»

Instalar Linux CentOS 7.0 Minimal

Si hemos modificado alguna opción de red será conveniente reiniciar el servicio de red para que se apliquen los cambios, podremos hacerlo con:

systemctl restart network.service

Instalar Linux CentOS 7.0 Minimal

Podremos probar la conexión a Internet realizando un ping a alguna página web:

ping proyectoa.com

Instalar Linux CentOS 7.0 Minimal

Instalar Apache, PHP para montar servidor Web con Linux CentOS 7

Instalar Apache en Linux CentOS 7, abrir puertos http y https cortafuegos

Para montar un servidor web en Linux CentOS 7 Minimal ejecutaremos el siguiente comando, que instalará Apache:

yum install httpd

Instalar Apache en Linux CentOS 7, abrir puertos http y https cortafuegos

Si todo es correcto realizará la descarga del paquete correspondiente httpd y sus dependencias (apr, apr-util, httpd-tools, mailcap), nos solicitará confirmación para continuar, pulsaremos «y» e INTRO::

Instalar Apache en Linux CentOS 7, abrir puertos http y https cortafuegos

Puede que nos pida alguna confirmación más, por ejemplo para importar la llave GPG, pulsaremos «s» e INTRO:

Instalar Apache en Linux CentOS 7, abrir puertos http y https cortafuegos

Tras la instalación de Apache iniciaremos y habilitaremos el servicio con los comandos:

systemctl start httpd.service

systemctl enable httpd.service

Para permitir conexiones externas al servidor para el puerto http (80) y https (443) ejecutaremos los siguientes comandos:

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

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

firewall-cmd –reload

Una vez realizados estos sencillos pasos ya tendremos disponible nuestro servidor web con Linux CentOS 7 y Apache. Desde cualquier equipo de la red, introduciendo la IP del servior en un navegador, nos mostrará la página de inicio de test de Apache:

Instalar Apache en Linux CentOS 7, abrir puertos http y https cortafuegos

Indicando que la instalación y apertura de puertos ha sido satisfactoria. Si esta página no se muestra habrá que verificar los pasos anteriores.

Instalar PHP para Apache en Linux CentOs 7, instalar módulos PHP LDAP, MySQL

Tras instalar Apache instalaremos PHP, para ello ejecutaremos el siguiente comando Linux:

yum -y install php

Instalar PHP para Apache en Linux CentOs 7, instalar módulos PHP LDAP, MySQL

Como siempre, iniciará la descarga de los paquetes necesarios y puede que nos pida confirmación para la instalación del paquete php y sus dependencias (libzip, php-cli, php-common):

Instalar PHP para Apache en Linux CentOs 7, instalar módulos PHP LDAP, MySQL

Tras la instalación de PHP reiniciaremos el servicio de Apache con el comando:

systemctl restart httpd.service

Instalar PHP para Apache en Linux CentOs 7, instalar módulos PHP LDAP, MySQL

Si queremos realizar una prueba para verificar que PHP ha quedado correctamente instalado e integrado con Apache, podremos crear un fichero con el comando:

vi /var/www/html/info.php

Instalar PHP para Apache en Linux CentOs 7, instalar módulos PHP LDAP, MySQL

Con el contenido:

phpinfo();
?> 
Instalar PHP para Apache en Linux CentOs 7, instalar módulos PHP LDAP, MySQL

Guardaremos los cambios (en el caso de vi pulsando Escape, las teclas wq y INTRO). Para probar PHP, desde cualquier equipo de la red, introduciendo la siguiente URL, nos debe mostrar una ventana con información de la versión de PHP y de los parámetros básicos:

http://xxx/info.php

Donde xxx será la IP del servidor web Apache con Linux CentOS.

Instalar PHP para Apache en Linux CentOs 7, instalar módulos PHP LDAP, MySQL

Nota importante: este fichero «info.php» es recomendable eliminarlo en un servidor web de producción, dado que muestra información que puede ser empleada por un atacante para tratar de vulnerar nuestros sistemas.

Aprovecharemos también para instalar el módulo que nos permitirá el acceso de PHP a nuestra base de datos MySQL Server (que instalaremos posteriormente). Para instalar el paquete ejecutaremos el comando:

yum -y install php-mysql

Instalar PHP para Apache en Linux CentOs 7, instalar módulos PHP LDAP, MySQL

Instalaremos también todos los módulos que queramos para PHP, por ejemplo para soporte de LDAP (php-ldap), soporte ODBC (php-odbc), etc. con el comando:

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

Instalar PHP para Apache en Linux CentOs 7, instalar módulos PHP LDAP, MySQL

Reiniciaremos el servicio de Apache para que se apliquen los cambios con:

systemctl restart httpd.service

Instalar PHP para Apache en Linux CentOs 7, instalar módulos PHP LDAP, MySQL

Instalar MySQL Server en Linux CentOS 7, configurar acceso externo

Para instalar MySQL Server en Linux CentOS 7 Minimal necesitaremos descargar el rmp del repositorio de MySQL e instalarlo previamente. No podremos instalar MySQL Server con Yum directamente pues las distribuciones CentOS vienen preparadas para instalar MariaDB con un sencillo yum install mariadb-server.

Instalar MySQL Server en Linux CentOS 7

Para descargar el repositorio de MySQL necesitaremos el comando wget, que en la distribución Minimal de CentOS 7 no viene instalado, por lo que en primer lugar instalaremos wget con el comando:

yum install wget

Instalar MySQL Server en Linux CentOS 7

Descargaremos el paquete RPM del repositorio de MySQL Server con el comando:

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

Instalar MySQL Server en Linux CentOS 7

Desplegaremos e instalaremos el rpm del repositorio de MySQL Server con el comando:

rpm -ivh mysql-community-release-el7-5.noarch.rpm

Instalar MySQL Server en Linux CentOS 7

Podremos verificar que los repositorios de MySQL han quedado instalados ejecutando:

ls -1 /etc/yum.repos.d/mysql-community*

Nos devolverá:

/etc/yum.repos.d/mysql-community.repo

/etc/yum.repos.d/mysql-community-source.repo

Instalar MySQL Server en Linux CentOS 7

Ahora ya podremos usar Yum para instalar MySQL Server en Linux CentOS 7, con el comando:

yum install mysql-server

Como siempre nos solicitará confirmación para instalar mysql-server y los paquetes dependientes (mysql-community-libs, mysql-community-server, libaio, mysql-community-client, mysql-community-common, net-tools, perl-Compress-Raw-Bzip2, perl-Compress-Raw-Zlib, perl-DBI, perl-IO-Compress, perl-Net-Daemon, perl-PlRPC).

Instalar MySQL Server en Linux CentOS 7

También nos solicitará confirmación para agregar la llave GPG:

Instalar MySQL Server en Linux CentOS 7

Una vez instalado MySQL Server ya podremos iniciar el servicio con el comando:

systemctl start mysqld

Instalar MySQL Server en Linux CentOS 7

Configurar seguridad MySQL Server y acceso externo en Linux CentOS 7

Tras la instalación de MySQL Server en Linux CentOS 7, es conveniente realizar la configuración previa de seguridad (estableciendo una contraseña para el superusuario root de MySQL). Para ello ejecutaremos el comando:

mysql_secure_installation

Configurar seguridad MySQL Server y acceso externo en Linux CentOS 7

Nos mostrará un sencillo asistente de texto para establecer los siguientes valores de configuración (por orden):

  • Establecer la contraseña del superusuario root.
  • Eliminar el usuario anónimo (anonymous).
  • Desactivar el login remoto del usuario root, recomendable por seguridad.
  • Eliminar base de datos «test», si existe.
  • Recargar los privilegios de las tablas.
Configurar seguridad MySQL Server y acceso externo en Linux CentOS 7

Si queremos permitir el acceso desde fuera del equipo servidor de base de datos MySQL Server con Linux CentOS 7 deberemos abrir el puerto de MySQL en el cortafuegos, con el comando:

firewall-cmd –permanent –zone=public –add-service=mysql

Para aplicar los cambios en el cortafuegos de Linux CentOS ejecutaremos el comando:

systemctl restart firewalld.service

Configurar seguridad MySQL Server y acceso externo en Linux CentOS 7

Si queremos permitir acceso desde otros equipos de la red al superusuario root (o a otro usuario) de MySQL Server realizaremos los siguientes pasos. Accederemos a la utilidad de la línea de comandos de MySQL con:

mysql -u root -p

Nos solicitará la contraseña del superusuario root que hemos introducido anteriormente en el proceso de configuración. Una vez dentro de la utilidad MySQL Monitor, ejecutaremos lo siguiente para permitir que el acceso externo a MySQL Server del usuario root:

grant all on *.* to root@’%’ identified by ‘contraseña’ ;

Para aplicar los cambios de privilegios ejecutaremos:

flush privileges;

Saldremos de la utilidad de MySQL Monitor con «quit».

Configurar seguridad MySQL Server y acceso externo en Linux CentOS 7

Nota importante: con root@’%’ estamos indicando que se permite el acceso con el superusuario root desde cualquier equipo de la red, para mayor seguridad es recomendable no usar root y, en caso de usarlo, permitir el acceso solo desde determinadas IP, cambiando «%» por la IP desde la que permitiremos el acceso.

De esta forma ya podremos administrar y acceder a nuestro servidor de base de datos MySQL Server con Linux CentOS 7 desde cualquier equipo. Como ejemplo para la conexión hemos usado MySQL Administrator, también podría servir MySQL Workbench:

Configurar seguridad MySQL Server y acceso externo en Linux CentOS 7

Instalar phpMyAdmin en Linux CentOS 7 para administrar servidor MySQL vía web

Si queremos poder administrar nuestro servidor de base de datos MySQL Server montado anteriormente vía web, podremos usar la herramienta gratuita phpMyAdmin. Con esta herramienta podremos realizar casi cualquier acción de configuración, administración y gestión de nuestro servidor de MySQL Server y sus datos (catálogos, tablas, exportación, selección, modificación de registros, importación, etc.).

Al igual que MySQL Server, los repositorios por defecto de Linux CentOS 7 no incluyen la instalación de phpMyAdmin. Para instalarlo, en primer lugar ejecutaremos el siguiente comando para habilitar el repositorio rpmforge:

yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

Instalar phpMyAdmin en Linux CentOS 7 para administrar servidor MySQL vía web

A continuación instalaremos phpMyAdmin con el comando:

yum install phpmyadmin

Instalar phpMyAdmin en Linux CentOS 7 para administrar servidor MySQL vía web

Tras la instalación de phpMyAdmin deberemos modificar el fichero /etc/httpd/conf.d/phpMyAdmin.conf para establecer desde qué IP (equipos) se permitirá acceso:

Instalar phpMyAdmin en Linux CentOS 7 para administrar servidor MySQL vía web

Por ejemplo, en nuestro caso permitiremos el acceso desde el equipo con IP 192.168.1.120, por lo que añadiremos esta IP en Require ip XXX y en Allow from XXX:

Instalar phpMyAdmin en Linux CentOS 7 para administrar servidor MySQL vía web

Reiniciaremos el servicio de Apache para aplicar los cambios y activar el acceso a phpMyAdmin:

systemctl restart httpd.service

Instalar phpMyAdmin en Linux CentOS 7 para administrar servidor MySQL vía web

Desde el equipo al que hemos permitido el acceso, en el navegador web, escribiremos la URL:

http://xxx/phpMyAdmin

donde xxx será la IP del servidor con Linux CentOS 7 y MySQL Server.

Si todo es correcto nos mostrará la ventana de login de phpMyAdmin, podremos acceder con el usuario root:

Instalar phpMyAdmin en Linux CentOS 7 para administrar servidor MySQL vía web

Y desde phpMyAdmin podremos configurar, administrar y gestionar nuestro servidor MySQL Server vía web:

Instalar phpMyAdmin en Linux CentOS 7 para administrar servidor MySQL vía web