Una de las grandes ventajas de los sistemas operativos Linux es su amplia capacidad de escalamiento gracias al código libre. No solo disponemos de numerosas aplicaciones, sino que también será posible hacer que el servidor cumple con muchos más roles para los cuales fue implementado inicialmente. Una de las funciones más conocidas, y en realidad una de las más usadas, es la implementación de la pila LAMP. Esta no es más que un grupo de diversos programas de código abierto que por regla general se instalan de forma simultánea con un objetivo claro: permitir que nuestro servidor esté habilitado y tenga los roles y servicios necesarios para actuar como un servidor donde se alojan servicios de páginas web dinámicas, así como de aplicaciones web.
- L: Es el sistema operativo Linux.
- A. Indica el servidor de aplicaciones Apache.
- M: Esta hace referencia a la ubicación donde los datos del sitio son almacenados la cual es una base de datos MySQL.
- P: Indica que el contenido dinámico es procesado a través de PHP.
Ahora, en un mundo en constante crecimiento, disponemos de una plataforma de pago, pero que ofrece un año gratuito. Hablamos de Microsoft Azure, donde todos los recursos creados, tanto máquinas virtuales como aplicaciones, estarán alojadas en diversos servidores del mundo garantizando no solo su disponibilidad sino también su integridad y seguridad. A través de este tutorial aprenderemos a instalar la pila LAMP en un servidor Ubuntu creado en Microsoft Azure. Para saber más acerca de Microsoft Azure podemos visitar el siguiente enlace:
1. Acceder a Azure Cloud Shell en Linux
Una vez vayamos al portal de Azure e ingresemos nuestras credenciales, el primer paso a dar consiste en acceder a Azure Cloud Shell el cual nos ofrece un ambiente Bash o un ambiente de PowerShell, en este caso usaremos el ambiente Bash y para acceder a él contamos con las siguientes opciones:
- Seleccionar la opción “Probarlo” en la esquina superior derecha de un bloque de código.
- Ir a un navegador y allí ingresar la siguiente línea:
https://shell.azure.com/bash
- Pulsar en el icono de la imagen ubicado en la parte superior del portal de Azure
Otra opción es hacer uso de la CLI de forma local, para esto se debe ejecutar la CLI de Azure versión 2.0.30 o superior, para saber en detalle que versión usamos, vamos al símbolo del sistema y ejecutamos lo siguiente:
az --version
2. Crear un grupo de recursos en Linux
El primer paso que dar consiste en crear un grupo de recursos usando el comando “az group créate”.Este grupo de recursos de Azure es un contenedor lógico en el cual se implementan y se administran los recursos de Azure que vamos creando poco a poco.
Para este caso crearemos un grupo llamado SolveticVM ejecutando lo siguiente:
az group create --name SolveticVM --location eastus
3. Crear una máquina virtual en Linux
Una vez creado el grupo de recursos, vamos a crear la máquina virtual de Linux, Azure no ofrece Ubuntu desde la edición 14.40 hasta la 18.04.
Vamos a crear una máquina virtual cuyo nombre será "Linux" y las claves SSH también serán registradas si aún no existen en una ubicación de claves predeterminada. Si deseamos hacer uso de un conjunto específico de claves, debemos usar la opción "--ssh-key-value", crearemos un usuario con el comando "–admin-username", ejecutamos las siguientes líneas:
az vm create \ --resource-group SolveticVM \ --name Linux \ --image UbuntuLTS \ --admin-username solvetic \ --generate-ssh-keys
Allí vemos que se da inicio al proceso de creación de la máquina virtual, cuando este proceso finalice veremos lo siguiente. Allí vemos detalles de la máquina creada.
4. Abrir el puerto 80 para el tráfico web en Linux
Por defecto en Azure, solo son admitidas conexiones a través de SSH en las máquinas virtuales Linux implementadas en Azure, si el servidor va a cumplir los roles de servidor web, sera necesario abrir el puerto 80 desde Internet, para ello usaremos el comando "az vm open-port" para abrir dicho puerto así:
az vm open-port --port 80 --resource-group SolveticVM --name Linux
5. Conectar SSH con la máquina virtual creada en Linux
Hasta este punto hemos creado la máquina virtual de Linux y habilitado el tráfico web, ahora es momento de conectarnos a ella, en primer lugar, debemos conocer la dirección IP pública, para esto ejecutamos la siguiente línea:
az network public-ip list --resource-group SolveticVM --query [].ipAddress
Una vez identificada la dirección IP pública, contamos con diferentes formas de conectarnos usando la siguiente sintaxis:
ssh usuario@IP_publica
A través del símbolo del sistema de Windows o la terminal de macOS Mojave o Linux:
A través de la conexión RDP disponible en Azure:
O a través del propio bash de Azure. Una vez nos conectemos podremos ver que estamos en el directorio home de Ubuntu.
6. Instalar Apache, MySQL y PHP en Linux
El primer paso que dar consiste en actualizar los orígenes de paquetes de Ubuntu e instalar Apache, MySQL y PHP, para ello debemos ejecutar lo siguiente sin perder de vista que debemos ingresar el símbolo de intercalación (^) al final del comando, el cual forma parte del nombre del paquete lamp-server^:
sudo apt update && sudo apt install lamp-server^
Durante este proceso se solicitará la contraseña del usuario root de MySQL:
Ahora debemos confirmarla:
Una vez este proceso finalice veremos lo siguiente:
7. Comprobar la instalación y configuración de Apache en Linux
El primer paso es validar la versión de Apache con la siguiente línea:
apache2 -v
Al tener Apache instalado y el puerto 80 abierto para la máquina virtual. Será posible acceder al servidor web desde Internet, con el fin de ver la página predeterminada de Apache2 de Ubuntu, vamos a un explorador web y allí ingresamos la dirección IP pública de la máquina virtual y este será el resultado obtenido:
Ahora vamos a comprobar la versión de MYSQL ejecutando:
mysql -V
Con el fin de proteger la instalación de MySQL, vamos a ejecutar el script “mysql_secure_installation” y se solicitará que ingresemos la contraseña configurada durante la instalación:
mysql_secure_installation
Allí serán lanzadas una serie de preguntas de seguridad y lo más recomendable es ingresar la letra y (yes) a todas ellas:
Al concluir este paso veremos esto:
Posteriormente, validamos la versión de PHP:
php -v
Para probar de una forma más completa PHP, vamos a crear una página PHP de información rápida para que sea visible desde el navegador, para esto vamos a ingresar la siguiente línea.
sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'
Ahora, vamos a una nueva pestaña e ingresamos la siguiente sintaxis:
http://IP_Publica/info.php
El resultado obtenido será el siguiente:
8. Instalar WordPress en Linux
Con el fin de validar que toda la pila LAMP funciona de la mejor forma, vamos a instalar la plataforma de código abierto WordPress, con la cual es posible crear sitios web y blogs, pero podemos usar otras aplicaciones como Drupal o Moodle.
Vamos a instalar el paquete de WordPress con la siguiente línea. Allí ingresamos la letra Y para confirmar la instalación.
sudo apt install wordpress
Ahora vamos a configurar WordPress para usar PHP y MySQL, para esto en un directorio de trabajo se creará un archivo de texto wordpress.sql con el fin de configurar la base de datos MySQL para WordPress, ejecutamos lo siguiente:
sudo sensible-editor wordpress.sql
En los resultados dejamos la opción de editor por defecto (2 – nano) y en la nueva ventana pegaremos lo siguiente:
CREATE DATABASE wordpress; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'yourPassword'; FLUSH PRIVILEGES;
Guardamos los cambios usando la combinación de teclas siguiente:
Ctrl + O
Salimos del editor usando:
Ctrl + X
Ahora vamos a ejecutar el siguiente comando para crear la base de datos:
cat wordpress.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf
Vamos a eliminar el archivo wordpress.sql ya que contiene credenciales de base de datos:
sudo rm wordpress.sql
Con el fin de configurar PHP, vamos a ejecutar el siguiente comando para abrir un editor de texto y crear el archivo respectivo:
sudo sensible-editor /etc/wordpress/config-localhost.php
Allí pegaremos lo siguiente:
<?php define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress'); define('DB_PASSWORD', 'yourPassword'); define('DB_HOST', 'localhost'); define('WP_CONTENT_DIR', '/usr/share/wordpress/wp-content'); ?>
Guardamos los cambios y salimos del editor. Ahora vamos a mover la instalación de WordPress a la raíz de documentos del servidor web con los siguientes comandos:
sudo ln -s /usr/share/wordpress /var/www/html/wordpress sudo mv /etc/wordpress/config-localhost.php /etc/wordpress/config-default.php
Finalmente, debemos completar la instalación de WordPress directamente desde un navegador con la siguiente sintaxis:
http://IP_publica/wordpress
Con esto comprobamos que toda la pila LAMP ha sido instalada y funciona de forma correcta en el servidor Ubuntu creado en Microsoft Azure. Como vemos, son pocos pasos los cuales nos permiten ampliar la oferta de servicios de nuestro servidor y todo en un ambiente seguro y simple.