Desplegar WordPress en Microsoft Azure

15 marzo 2016
Josep Ma Solanes 14

No hay duda que WordPress es la plataforma de gestión de contenidos más popular para la creación de blogs, es rápido y fácil de utilizar en el día a día. Estas características lo hacen una plataforma perfecta para mantener nuestro sitio web, ya sea una página corporativa, personal, blog, etc…). Pero para disponer de la plataforma se necesita de un sitio donde tenerla, esta puede ser:

  • Creando el sitio web en la propia plataforma wordpress.com.
  • Desplegando la plataforma WordPress sobre nuestro sitio web contratado a un proveedor de Internet. La mayoría de proveedores de Internet lo permiten desplegar sobre el sitio web de forma asistida, es decir, pulsando un simple botón.
  • Desplegando la plataforma WordPress sobre un servidor propio publicado en Internet.

Para el despliegue de la plataforma WordPress sobre servidores controlados por nosotros (que no se utilizan con asistentes) tenemos que tener presente los requerimientos “oficiales” para hacerlo funcionar y que en algunos casos nos puede limitar el uso de la tecnología:

  • PHP 5.6 o superior
  • MySQL 5.6 o superior
  • El módulo de Apache mod_rewrite

Lo más habitual es hacer el despliegue sobre sistemas operativos Linux, aunque también se hace sobre Windows, con un servidor web Apache y la base de datos MySQL.

 

¿Y si queremos desplegar WordPress sobre Microsoft Azure?

Naturalmente que se puede hacer y no sólo de una sola forma, sino que se puede hacer de tres maneras diferentes, según el grado de disponibilidad y mantenimiento que se le quiera dotar a la plataforma:

  • Desplegando una máquina propia, donde se instala el servicio Web Apache y el de base de datos MySQL o MariaDB correspondientes. Donde el control y mantenimiento del entorno es total para el administrador de sistemas.
  • Utilizando el servicio web y de base de datos MySQL de Azure. Hay que recordar que el servicio de MySQL no lo ofrece directamente Azure, sino que se contrata y paga aparte.
  • Desplegando el servicio web enlazado a una base de datos, MySQL o MariaDB, ubicada en una o varias máquinas virtuales propias. El control del entorno es bastante elevado por el administrador de sistemas.

Esta entrada trata de desplegar la plataforma WordPress sobre el servicio Web y, como base de datos, utilizar una máquina virtual propia.

Para complicar un poquito más la cosa, en Microsoft Azure, los servicios se pueden ubicar en redes diferentes: la pública (por defecto) y la privada (creada para nosotros y sin acceso desde el exterior). El despliegue que se hace es en la red pública, siguiendo el esquema de servidor Web, permitiendo el acceso al puerto http (TCP 80) para todos, y un servidor de base de datos, limitado al entorno Azure.

 

Desplegar el servicio Web en Microsoft Azure

Desde el portal de Microsoft Azure, hacer clic en Nuevo.

wordpress-a-azure-01

Se abre el Marketplace. Si en el cuadro de buscar escribimos WordPress, aparecen varias opciones de despliegue de la plataforma programadas a tal efecto: WordPress normal, WordPress escalable, WordPress con un clúster de MySQL, WordPress con Docker, etc…

wordpress-a-azure-02

En esta entrada crearemos el entorno para la plataforma de WordPress desde cero, por lo que la opción a escoger, teniendo en cuenta los requerimientos de WordPress, es buscar PHP”. En la lista de resultados, hacer clic en “PHP Empty Web App”.

wordpress-a-azure-03

En la lista del marketplace filtrada ya sólo aparece este resultado. Hacer clic en PHP Empty Web App para ver el detalle del paquete.

wordpress-a-azure-04

Hacer clic en el botón Crear para iniciar el despliegue del sitio web.

wordpress-a-azure-05

Indicar el nombre para la aplicación, este nombre no se puede repetir en el dominio de Azure (.azurewebsites.net). El nombre de la aplicación se puede enmascarar en la URL con un alias de DNS (CNAME) en nuestro dominio.

Seleccionar la suscripción donde se carga el consumo del servicio y el Grupo de recursos donde se alojará el entorno. En el desplegable, seleccionar +Nuevo para crear uno de nuevo (en mi caso WordPressAzure).

Indicar la localización del servicio, en que centro de datos de Microsoft Azure queréis tener alojado el entorno. Como más cercano a la ubicación de los usuarios mejor. Hacer clic sobre el plan para crear uno de nuevo. Hacer clic en el botón Crear nuevo.

wordpress-a-azure-06

Indicar el nombre del servicio (WordPressAzureService), la localización (North Europe – Irlanda) y los recursos a disponer para mantener el servicio web.

Como que es un entorno de demostración, se puede seleccionar un plan B1 Basic. Escoger uno o otro dependiendo de las necesidades del entorno de producción. Se puede empezar con una de pequeña y ir creciendo según las necesidades. Mi recomendación, en entorno de producción, es utilizar las máquinas Standard, más que nada porque disponen de copias de seguridad diarias de las mismas.

Hacer clic en la opción de máquina y el botón Select para seleccionar.

wordpress-a-azure-07

Hacer clic en el botón OK para crear el plan de servicio de aplicación.

wordpress-a-azure-08

Asegurar que ha quedado seleccionado el plan que acabamos de crear. Se puede dejar marcado el checkbox de pincharlo en el panel principal y hacer clic en el  botón Create para crearlo.

wordpress-a-azure-09

El entorno se va creando, un poco de paciencia. Podéis ver la evolución en el propio panel principal (si se ha marcado el checkbox de visualizarlo en el panel principal) o bien haciendo clic en la campanilla de la barra superior de opciones.

wordpress-a-azure-10

Una vez creado, se anuncia en la campanilla y en el panel se carga la página principal del servicio. Anotad la dirección URL para acceder.

wordpress-a-azure-12

Accediendo a la dirección URL proporcionada, el resultado es una página en blanco. Eso quiere decir que el entorno es operativo, pero, naturalmente, hay que poner el contenido.

wordpress-a-azure-14

Preparando el servicio Web para el WordPress

Como lo haremos en cualquier caso, mediante un cliente de FTP, como puede ser el FileZilla. Crear una nueva conexión en el nuevo sitio web con la configuración proporcionada desde Azure. El nombre del servidor corresponde al FTP HostnameFTPS hostname, según se quiera conectar cifrando o sin. Como no, recomiendo la conexión mediante FTPS.

wordpress-a-azure-15

Accediendo al servicio de FTP de Azure, se visualizan tres carpetas: data, LogFiles y Site. La que nos interesa, de momento, es SITE.

wordpress-a-azure-17

En su interior encontramos la carpeta wwwroot, raíz del sitio web y donde se tiene que colgar el contenido que queremos ofrecer.

wordpress-a-azure-18

Para obtener información del servidor web que se acaba de crear, podemos utilizar la famosa página Index.php con el phpinfo():

<?php
    php_info();
?>

Si se accede de nuevo al servidor Web nos muestra la información solicitada. Observad que la versión de PHP es la 5.4.x y, según especificaciones de WordPress, necesitamos tener la 5.6.

wordpress-a-azure-19

Volver al panel de Azure, en la aplicación Web, hacer clic en el botón Configuración. En la barra lateral, en el apartado General, hacer clic en Configuración Aplicación.

wordpress-a-azure-20

Modificar el parámetro de la versión de PHP, cambiándola a la versión 5.6.

wordpress-a-azure-21

En el apartado documentos por defecto, aunque no es necesario, me gusta dejar sólo la página que yo quiero sea la de defecto, en el caso de WordPress, la index.php. Por lo tanto, eliminar el resto haciento clic en el botón con los puntitos y hacer clic en Borrar. Una vez esté todo listo, hacer clic en el botón Guardar de la parte inferior para aplicar las modificaciones.

wordpress-a-azure-22

Volver a cargar la página de información, se visualiza la nueva versión de PHP a 5.6.

wordpress-a-azure-23

Ya se puede cargar el entorno WordPress en el servidor Web mediante el acceso por FTP. Por eso, se tiene que descargar la plataforma desde el sitio Web de WordPress y descomprimir en una carpeta en vuestro equipo.

wordpress-a-azure-23a

Con el cliente de FTP hacemos la carga del contenido de la carpeta descomprimida (el que se visualizan archivos y la carpeta wp-admin) del WordPress en la raíz del sitio web que se ha creado en Azure, sobrescribiendo los archivos existentes.

wordpress-a-azure-24

Accediendo de nuevo al sitio web, al no estar el WordPress configurado, se inicia el asistente de instalación. También se puede hacer directamente poniendo el nombre del servicio web y a continuación /wp-admin/install.php.

wordpress-a-azure-25

Antes de continuar con el asistente, necesitamos tener la base de datos donde poner el WordPress operativa. SI no la tenemos a punto, dejamos por un momento reservada esta pestaña.

 

Desplegar una máquina virtual para el servicio de base de datos MySQL en Azure

Desde el panel principal de Azure, hacer clic en el botón Nuevo.

wordpress-a-azure-26

En el Marketplace, hacer clic en Compute. Del listado de máquinas virtuales, hacer clic, por ejemplo, en Ubuntu Server para desplegar un servidor Linux que aloje la base de datos de WordPress.

wordpress-a-azure-28

Se informa de las propiedades de la máquina virtual, hacer clic en el botón Crear.

wordpress-a-azure-29

Indicar el nombre de la máquina virtual, nombre de usuario, contraseña, suscripción y grupo de recursos donde asociar la máquina virtual. Hacer clic en el botón OK cuando todo esté correcto.

wordpress-a-azure-30

Escoger el tamaño de la máquina virtual que contendrá la base de datos. Recordad que si no os gusta ninguna de las propuestas, haciendo clic en el enlace Ver todo se pueden escoger otros modelos. Para el entorno de demostración se puede utilizar una máquina muy básica. Hacer clic en el botón Select para seleccionar y continuar.

wordpress-a-azure-31

Más opciones, tipo de disco duro, cuenta de almacenamiento, red virtual, etc… Si no tenéis que utilizar redes privadas para esta máquina podéis dejar los valores por defecto. Hacer clic en el botón OK.

wordpress-a-azure-33

Resumen de la configuración de la máquina virtual, hacer clic en el botón OK para crearla.

wordpress-a-azure-34

Lo mismo que antes, esperar a que se cree la máquina virtual. Haciendo clic en la campanilla podemos ver la línea de progreso.

wordpress-a-azure-35

Acabado el despliegue, toca configurar la base de datos. Acceder al servidor, que por defecto se ha creado con una dirección IP pública y que permite el acceso mediante el puerto SSH. La conexión se puede hacer con el Putty. En la consola, indicar el nombre de usuario y la contraseña y ya estáis dentro del servidor Ubuntu. ¡Todo para vosotros! Ya no hay ninguna diferencia en esta máquina de cualquier servidor Ubuntu que podáis tener desplegado en local, virtualizado o en otro cloud público.

 

 

Creación de la base de datos para WordPress

La base de datos se puede crear desde cualquier gestor de bases de datos, el que se describe a continuación es haciéndolo desde la consola de comandos. Acceder en la consola al servidor MySQL donde crear la base de datos para el WordPress con los permisos correspondientes:

mysql -u root -p

Desde el símbolo de comandos de MySQL o MariaDB, crear la base de datos propiamente dicha con un nombre identificativo:

create data base dbWordPress;

Crear un usuario específico para esta base de datos con acceso desde cualquier dirección IP y asignarle permisos exclusivos:

create user 'usrdbwordpress'@'%' IDENTIFIED BY 'password';
grant all privileges on dbWordPress.* TO 'usrdbwordpress'@'%' WITH GRANT OPTION;
flush privileges;

Comprobar que se ha creado la base de datos y que se tiene acceso. Salir del símbolo de comandos del MySQL:

exit

Volver a acceder al símbolo de comandos de MySQL con  el usuario exclusivo de la base de datos de WordPress:

mysql -u usrdbwordpress -p

Visualizar las bases de datos a las que se tiene acceso, comprobar que sólo se visualiza la base de datos de WordPress a la que hemos asignado los permisos:

show databases;

 

Configuración inicial del WordPress

Volviendo a la página inicial de la instalación de WordPress que teníamos a medias: /wp-admin/install.php, Seleccionar el idioma y hacer clic en el botón Continuar.

wordpress-a-azure-36

Se inicia el asistente de instalación, hacer clic en el botón “Vamos”.

wordpress-a-azure-37

Indicar el nombre de la base de datos, el usuario y contraseña de conexión y la dirección pública del servidor donde está alojado el servicio de base de datos. Es decir, los datos que se han especificado en el punto anterior. Hacer clic en el botón Enviar.

wordpress-a-azure-38

Si todas las comunicaciones son correctas, se crean las tablas de la base de datos y queda todo a punto para ejecutar la personalización del sitio de WordPress. Hacer clic en el botón Ejecutar la instalación.

wordpress-a-azure-39

Se nos pide por la personalización del sitio web. Título del sitio, usuario y contraseña del administrador del sitio web. Hacer clic en el botón Instalar WordPress para acabar la configuración.

wordpress-a-azure-40

Eso ya se ha acabado. Hacer clic en el botón Acceder.

wordpress-a-azure-41

Sí, acabamos de crear un nuevo sitio web de WordPress. ¡Hola mundo! Ahora sólo queda acabar de personalizar el entorno con colores y fotografías y llenarlo de contenido.

wordpress-a-azure-42

 

¿Te ha gustado el artículo? Lo puedes compartir en las redes sociales. También puedes dejar tu opinión, comentario o sugerencia. ¡Gracias!

Similar Posts by The Author:

 

14 comentaris per a
“Desplegar WordPress en Microsoft Azure”

  1. Hola Josep, antes de nada quiero felicitarte por este post, lo he seguido paso a paso. Tengo 1 duda, una vez que creas la base de datos el usuario y su password, cuando ejecutas /wp-admin/install.php, se muestra el asistente y en la segunda pantalla para introducir los datos, de donde obtienes el servidor de base de datos: servidor.cloudapp.net? este dato viene del server ubuntu, pero no lo encuentro entre todos los componentes que se han ido creando.

     
    1. Hola Eduardo, servidor.cloudapp.net corresponde al nombre que te ha asignado Azure al grupo de servicios. Se hace mediante nombre DNS ya que la IP pública es dinámica y puede cambiar. Este nombre no se puede repetir en el dominio cloudapp.net con lo que a veces no se puede escoger el nombre que tienes. Una vez hecho, se genera un registro CNAME en tu dominio que punte a este.

       
  2. Hola, tengo una duda…hace muy poco comence con un proyecto que tiene azure, ahi tiene instalado una vm de linux en la cual tienen las carpetas de 3 web pero no logro ver las estructuras de las 3 web y saber cual es la instancia principal de wordpress, mi pregunta es como hago para apuntar o dar con la carpeta raiz de wordpress

     
    1. Hola Brhyana,

      Perdona, pero me pierdo un poco. A ver si te entiendo, tienes un servidor Linux, con un servicio web (Apache, Nginx…)

      ¿El objetivo es tener tres webs diferentes?
      En este caso debes configurar tres sitios diferentes, con el reconocimiento del hostname (FQDN) para que apunte a una carpeta o a otra. Todas ellas serian raiz de su sitio web.

      ¿El objetivo es tener una web con tres subsitios diferentes?
      En este caso debes configurar un sitio primario, el hostname raiz y dentro de él crear estas tres carpetas con tres instancias de WordPress diferentes.

      No sé si te refieres a esto, en caso contrario ruego me lo expliques otra vez, por favor.

      Saludos

       
  3. perdona te moleste
    tengo un wordpress en linux ya configurado y funcionando en una maquina virtualizada bajo hyper-v.
    he llevado este vhd a un storage blog, que mas pasos tengo que seguir???? para que me funcione mi worpress en azure???

     
    1. En este caso tu pones la infraestructura (IaaS) y, por tanto, la tienes que gestionar tu (sistema operativo y servidor web). Seria otra forma de montar WordPress, diferente al del presente artículo, en qué se utiliza la plataforma (PaaS), sin necesidad de gestionar el sistema operativo y servidor web que hay por debajo.

      En tu caso debes crear una máquina virtual, al que conectarás tu disco duro. Pero antes de mover el equipo de un sitio al otro debes prepararlo a tal efecto. Me lo apunto para generar una entrada de como mover máquinas onpremise a Azure.

       
    1. Sí, mediante servicio subcontratado a otra empresa, que pagas mediante tarjeta a la misma (ClearDB).

      Cuando montas el WordPress te pide el proveedor de base de datos. Que ha fecha de hoy tienes: Azure Database for MySQL (en preview), MySQL in App y ClearDB (proveedor externo).

      Puedes probar el servicio Azure Database for MySQL y así me cuentas tu experiencia. 😉

      Saludos,

       
  4. Hola Jose,
    Antes de nada quiero felicitarte por el post lo he leído todo pero no le he probado de esa manera.

    Mi duda que tengo es: cual es la mejor forma de montar WordPress en azure?

    Yo siempre lo hice con solamente nuevo y en seguida busque wordpress y en crear, por que son solo uso para mi y para que el publico la vea (obvio) yo creo que no necesito el ftp.
    He visto que de repente tengo una factura mas alta que el mes pasado por lo cual tengo una suscripción de pago por uso.

    Como puedo montar wordpress en azure para que siempre me sale con el mismo monto de facturación?

    Como se maneja al ancho de banda y los limites de visitas a las paginas web en azure?

    Me puedes ayudar por favor?

     
    1. Buenas Johan. En Azure, WordPress lo puedes montar de varias formas: Mediante IaaS o mediante PaaS.

      • IaaS. Tu te lo guisas, tu te lo comes. Esto quiere decir que debes desplegar una máquina virtual donde tu vas a configurar y mantener todo els sistema operativo y elementos asociados, en este caso el Apache y el MySQL.
      • PaaS. Aquí puedes delegar la operativa del servidor Apache a Microsoft y solo necesitas mantener la base de datos, que te recomiendo instales en una máquina IaaS para gestionarlo mejor tu.

      El servicio FTP lo necesitas para subir tus archivos al WordPress. Piensa que todo el tráfico de entrada a Azure no se cobra, pero el de salida SI. Con lo que la carga de ficheros no te debe suponer un sobre coste.

      Por otro lado y también sobre la factura que comentas, depende de si has contratado la base de datos externa y de las visitas. En este último caso tienes que cuidar quien tiene acceso a la web y que no reutilicen tu conexión para otras webs. Yo tuve este problema al inicio, basta con modificar el fichero .HTACCESS para evitar la carga de los ficheros desde sitios externos. Revisa estos datos.

      Actualmente desconozco que puedas limitar el ancho de banda de entrada, pero buscaré a ver que hay de nuevo en el sistema. Pero el problema continuaria, ya que solo estás reduciendo el ancho de banda, NO la transferencia que es po lo que se cobra. Azure cambia cada tres meses.

      Saludos,

       
  5. Hola Josep María,
    Muchas gracias por tu blog. Super interesante. He creado un website con el appservice de wordpress en Azure y me pregunto de qué medidas de seguridad vienen ya por defecto o cuáles son las medidas que debería tomar para hacer el mismo un website seguro. ¿Protege azure de una forma predeterminada este appservice? Por ejemplo, bloqueando intentos múltiples de acceso al wpadmin? Muchas gracias por tus comentarios.

     
    1. Hola Nacho,

      Los sistemas de protección son los estándardes para mantener el servicio levantado, pero no para el bloqueo de ataques. Para ello, debes disponer de un Web Application Firewall delante que filtre las peticiones. Me apunto para hacer un artículo al respecto. Gracias por el aporte.

      Saludos,

       

Deixar un comentari

Recorda que no es contestaran preguntes personals, només d´interés comú que ens enriqueixin a tots.
La teva adreça de correu electrònic no serà publicada. Els camps obligatoris estan indicats.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.