Tutorial: Instalación de una pila LAMP en una máquina virtual Linux en Azure

Se aplica a: ✔️ Máquinas virtuales Linux

En este artículo se ofrecen instrucciones paso a paso para implementar un servidor web Apache, MySQL y PHP (la pila LAMP) en una máquina virtual de Ubuntu en Azure. Para ver el servidor LAMP en acción, si lo desea, puede instalar y configurar un sitio de WordPress. En este tutorial, aprenderá a:

  • Creación de una máquina virtual de Ubuntu
  • Apertura del puerto 80 para el tráfico web
  • Instalación de Apache, MySQL y PHP
  • Comprobación de la instalación y configuración
  • Instalación de WordPress

Esta configuración es para pruebas rápidas o prueba de concepto. Para más información sobre la pila LAMP, incluyendo recomendaciones para un entorno de producción, consulte la documentación de Ubuntu.

En este tutorial se usa la CLI dentro de Azure Cloud Shell, que se actualiza constantemente a la versión más reciente. Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior de cualquier bloque de código.

Si decide instalar y usar la CLI localmente, en este tutorial es preciso que ejecute la versión 2.0.30 u otra posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Crear un grupo de recursos

Para crear un grupo de recursos, use el comando az group create. Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.

En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus.

az group create --name myResourceGroup --location eastus

Creación de una máquina virtual

Cree la máquina virtual con el comando az vm create.

En el ejemplo siguiente, se creará una máquina virtual denominada myVM y las claves SSH si aún no existieran en una ubicación de claves predeterminada. Para utilizar un conjunto específico de claves, utilice la opción --ssh-key-value. El comando también establece azureuser como nombre de usuario de administrador. Use este nombre más adelante para conectarse a la VM.

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

Cuando se ha creado la máquina virtual, la CLI de Azure muestra información similar al ejemplo siguiente. Anote el valor de publicIpAddress. Esta dirección se utiliza para acceder a la VM en los pasos posteriores.

{
  "fqdns": "",
  "id": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "40.68.254.142",
  "resourceGroup": "myResourceGroup"
}

Apertura del puerto 80 para el tráfico web

De forma predeterminada, solo se permiten conexiones mediante SSH con las máquinas virtuales Linux implementadas en Azure. Dado que esta máquina virtual va a ser un servidor web, debe abrir el puerto 80 desde Internet. Use el comando az vm open-port para abrir el puerto deseado.

az vm open-port --port 80 --resource-group myResourceGroup --name myVM

Para obtener más información sobre cómo abrir puertos en la máquina virtual, consulte Apertura de puertos.

Conexión SSH con la máquina virtual

Si no conoce la dirección IP pública de la máquina virtual, ejecute el comando az network public-ip list. Necesitará esta dirección IP para varios pasos posteriores.

az network public-ip list --resource-group myResourceGroup --query [].ipAddress

Ejecute el comando siguiente para crear una sesión SSH con la máquina virtual. Sustituya la dirección IP pública correcta de la máquina virtual. En este ejemplo, la dirección IP es 40.68.254.142. azureuser se establece el nombre de usuario de administrador establecido al crear la VM.

ssh azureuser@40.68.254.142

Instalación de Apache, MySQL y PHP

Ejecute el siguiente comando para actualizar los orígenes de paquetes de Ubuntu e instalar Apache, MySQL y PHP. Tenga en cuenta el símbolo de intercalación (^) al final del comando, que forma parte del nombre del paquete lamp-server^.

sudo apt update && sudo apt install lamp-server^

Se le pide que instale los paquetes y otras dependencias. Este proceso instala las extensiones PHP mínimas necesarias para utilizar PHP con MySQL.

Comprobación de Apache

Compruebe la versión de Apache con el comando siguiente:

apache2 -v

Con Apache instalado y el puerto 80 abierto para la máquina virtual, ahora se puede acceder al servidor web desde Internet. Para ver la página predeterminada de Apache2 Ubuntu, abra un explorador web y escriba la dirección IP pública de la máquina virtual. Use la dirección IP pública utilizada para SSH en la máquina virtual:

Página predeterminada de Apache

Comprobación y protección de MySQL

Compruebe la versión de MySQL con el siguiente comando (tenga en cuenta el parámetro V en mayúsculas):

mysql -V

Para ayudar a proteger la instalación de MySQL, incluido el establecimiento de una contraseña raíz, ejecute el script mysql_secure_installation.

sudo mysql_secure_installation

Si lo desea, puede configurar el complemento para validar contraseña (se recomienda). A continuación, establezca una contraseña para el usuario raíz de MySQL y configure las opciones de seguridad restantes para su entorno. Se recomienda que responda "Y" (Yes o Sí) para todas las preguntas.

Si desea crear probar características de MySQL (crear una base de datos MySQL, agregar usuarios o cambiar la configuración), inicie sesión en MySQL. Este paso no es necesario para completar este tutorial.

sudo mysql -u root -p

Cuando haya terminado, escriba \q para salir del símbolo del sistema de mysql.

Comprobación de PHP

Compruebe la versión de PHP con el comando siguiente:

php -v

Si desea realizar más pruebas, cree una página PHP de información rápida para verla en un explorador. El siguiente comando crea la página de información de PHP:

sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'

Ahora puede comprobar la página de información de PHP que creó. Abra un explorador y vaya a http://yourPublicIPAddress/info.php. Sustituya la dirección por la dirección IP pública de la máquina virtual. Debe tener un aspecto similar a esta imagen.

Página de información de PHP

Instalación de WordPress

Si desea probar la pila, instale una aplicación de ejemplo. Por ejemplo, los pasos siguientes instalan la plataforma de código abierto WordPress, que permite crear sitios web y blogs. Otras cargas de trabajo para probar podrían ser Drupal y Moodle.

Esta instalación de WordPress es solo para la prueba de concepto. Para instalar la versión más reciente de WordPress en producción con la configuración de seguridad recomendada, consulte la documentación de WordPress.

Instalación del paquete de WordPress

Ejecute el comando siguiente:

sudo apt install wordpress

Configuración de WordPress

Configure WordPress para usar PHP y MySQL.

En un directorio de trabajo, cree un archivo de texto wordpress.sql para configurar la base de datos MySQL para WordPress:

sudo sensible-editor wordpress.sql

Agregue los siguientes comandos, sustituyendo la contraseña de una base de datos de su elección por su_contraseña (deje otros valores sin modificar). Si anteriormente configuró una directiva de seguridad de MySQL para validar la seguridad de la contraseña, asegúrese de que esta cumple los requisitos de seguridad. Guarde el archivo.

CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY 'yourPassword';

Ejecute el siguiente comando para crear la base de datos:

cat wordpress.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf

Dado que el archivo wordpress.sql contiene credenciales de base de datos, elimínelo después de usarlo:

sudo rm wordpress.sql

Para configurar PHP, ejecute el siguiente comando para abrir un editor de texto y crear el archivo /etc/wordpress/config-localhost.php:

sudo sensible-editor /etc/wordpress/config-localhost.php

Copie las líneas siguientes en el archivo, sustituyendo la contraseña de la base de datos de WordPress por su_contraseña (deje otros valores sin modificar). A continuación, guarde el archivo.

<?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');
?>

Mueva la instalación de WordPress a la raíz de documentos del servidor web:

sudo ln -s /usr/share/wordpress /var/www/html/wordpress

sudo mv /etc/wordpress/config-localhost.php /etc/wordpress/config-default.php

Ahora puede completar la instalación de WordPress y publicar en la plataforma. Abra un explorador y vaya a http://yourPublicIPAddress/wordpress. Sustituya la dirección por la dirección IP pública de la máquina virtual. Debe tener un aspecto similar a esta imagen.

Página de instalación de WordPress

Pasos siguientes

En este tutorial, implementó un servidor LAMP en Azure. Ha aprendido a:

  • Creación de una máquina virtual de Ubuntu
  • Apertura del puerto 80 para el tráfico web
  • Instalación de Apache, MySQL y PHP
  • Comprobación de la instalación y configuración
  • Instalación de WordPress en el servidor LAMP

Pase al siguiente tutorial para aprender a proteger servidores web con certificados TLS/SSL.