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.
- Instalar Apache (servidor web) en Linux CentOS 7 Minimal.
- Instalar MySQL – Maria DB (Base de datos) en Linux CentOS 7 Minimal.
- Instalar PHP (intérprete de comandos) en Linux CentOS 7 Minimal.
- Instalar phpMyAdmin para administrar el servidor de MySQL – MariaDB vía web.
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:
Si la instalación de Apache ha sido correcta nos mostrará:
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
Para habilitar el acceso externo a nuestro servidor web deberemos establecer las reglas en el cortafuegos, podemos hacerlo con los siguientes comandos:
1 2 3 |
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload |
Si los comandos anteriores no funcionan (depende de la versión de CentOS y del firewall) podremos usar estos otros:
1 2 3 |
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --zone=public --add-port=443/tcp --permanent sudo firewall-cmd --reload |
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 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:
Si todo es correcto nos mostrará:
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:
Nos mostrará la opción de establecer la contraseña del usuario root de MySQL (MariaDB), pulsaremos INTRO:
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:
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:
También nos dará la posibilidad de eliminar la base de datos de pruebas que se crea por defecto:
Y por último recargará la tabla de privilegios:
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:
1 |
mysql --user=root --password=contraseña |
Y ejecutar algún comando de MySQL, por ejemplo el que muestra todos los catálogos:
show databases;
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
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
1 |
<php phpinfo(); ?>; |
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:
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
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>
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: