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.
- Instalar Linux CentOS 7.0 Minimal.
- Instalar Apache, PHP para montar servidor Web con Linux CentOS.
- Instalar MySQL Server en Linux CentOS 7, configurar acceso externo.
- Instalar phpMyAdmin en Linux CentOS 7 para administrar servidor MySQL vía web.
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
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:
- Crear fichero ISO a partir de CD/DVD con ImgBurn.
- Crear un CD a partir de una imagen ISO con Infra Recorder.
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:
- Algunas opciones interesantes de la BIOS.
- Subir fichero ISO de GParted a datastore VMware y añadir CD/DVD de arranque en la BIOS de la máquina virtual.
- Degradar versión VMware ESXi 5.1 a 5.0 con instalación limpia.
- Arranque de W2008 desde fichero ISO en VMware ESX.
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:
- Instalar VMware ESXi 5 en VMware Workstation, instalar vSphere Client.
- Virtualización profesional gratuita con Citrix XenServer Free Edition.
- Virtualizar en Linux, instalar VirtualBox en Linux Ubuntu 10.10 64 bits.
- Virtualización con Sun xVM VirtualBox del sistema operativo OpenSolaris 11.
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:
Y hemos descargado el fichero: CentOS-7.0-1406-x86_64-Minimal.iso
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:
Elegiremos el idioma de instalación y pulsaremos «Continuar»:
Configuraremos la instalación pulsando en cada grupo, por ejemplo para la hora y fecha pulsaremos en «FECHA & HORA»:
Estableceremos la zona horaria y pulsaremos «Listo»:
Si estamos instalando la versión no Minimal podremos elegir el software a instalar pulsando en «SELECCIÓN DE SOFTWARE»:
En nuestro caso al estar instalando Linux CentOS Minimal no tendremos disponible software a instalar pues se instalará el básico:
En «FUENTE DE INSTALACIÓN»:
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:
En «DESTINO DE LA INSTALACIÓN»:
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):
En «RED Y NOMBRE DE HOST»:
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»:
En la pestaña «Ajustes de IPv4» podremos especificar la configuración de red manual (IP, puerta de enlace gateway, DNS):
Una vez realizada la configuración inicial de Linux CentOS pulsaremos en «Comenzar instalación»:
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»:
Introduciremos una contraseña para el superusuario root y pulsaremos «Listo»:
En la ventana de instalación también podremos crear un usuario pulsando en «CREACIÓN DE USUARIO»:
Introduciremos los datos para el nuevo usuario (nombre completo, usuario, contraseña, etc.):
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»:
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:
Podremos comprobar el nombre de red DNS del equipo con:
hostname
Y ver la versión del kernel con:
uname -a
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»:
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)
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»
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
Podremos probar la conexión a Internet realizando un ping a alguna página web:
ping proyectoa.com
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
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::
Puede que nos pida alguna confirmación más, por ejemplo para importar la llave GPG, pulsaremos «s» e INTRO:
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:
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
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):
Tras la instalación de PHP reiniciaremos el servicio de Apache con el comando:
systemctl restart httpd.service
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
Con el contenido:
1 2 |
phpinfo(); ?> |
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:
Donde xxx será la IP del servidor web Apache con Linux CentOS.
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
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
Reiniciaremos el servicio de Apache para que se apliquen los cambios con:
systemctl restart httpd.service
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
Descargaremos el paquete RPM del repositorio de MySQL Server con el comando:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
Desplegaremos e instalaremos el rpm del repositorio de MySQL Server con el comando:
rpm -ivh mysql-community-release-el7-5.noarch.rpm
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
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).
También nos solicitará confirmación para agregar la llave GPG:
Una vez instalado MySQL Server ya podremos iniciar el servicio con el comando:
systemctl start mysqld
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
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.
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
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».
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:
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
A continuación instalaremos phpMyAdmin con el comando:
yum install phpmyadmin
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:
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:
Reiniciaremos el servicio de Apache para aplicar los cambios y activar el acceso a phpMyAdmin:
systemctl restart httpd.service
Desde el equipo al que hemos permitido el acceso, en el navegador web, escribiremos la URL:
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:
Y desde phpMyAdmin podremos configurar, administrar y gestionar nuestro servidor MySQL Server vía web: