Web Sites en Azure con PHP, MySQL vía FTP

En esta guía vamos a ver como con mínimo esfuerzo y sin software adicional podemos tener corriendo nuestro sitio web en Azure Web Sites. En este punto, entiendo que ya tenés creada tu cuenta de Azure. Si aún no la tenés, te dejo algunas opciones para que empieces gratis:

Bien. Si tu cuenta ya está activa, entremos al portal de Azure en esta dirección: https://manage.windowsazure.com/

Una vez que cargue, vas a ver algo como esto, sólo que seguramente con menos cosas listadas (yo ya tengo muchos servicios corriendo en mi cuenta).

image

Creemos primero el servicio de hosting para el sitio web. Click en New > Compute > Web Site > Custom Create. Vas a ver algo como esto:

image 

Como puedes ver, el nombre de tu sitio web es el que va a definir la dirección URL, para la cual el patrón siempre es <miURL>.azurewebsites.net. Si en realidad lo que necesitas es redirigir www.midominio.com a este sitio web, más adelante explico como hacerlo.

Ejemplo: yo elegí mfelman-phpsite, por lo tanto, mi dirección será mfelman-phpsite.azurewebsites.net. Además, yo tengo www.marcelofelman.com.ar y quiero poder acceder de esa forma. Esto es posible y lo vemos mas adelante.

Bien, ahora que tenemos esta pantalla, elegimos Create a new MySQL database. En caso de que ya tengamos otra base existente y querramos conectarnos a ella, esa posibilidad existe también y lo vemos más adelante.

image

NOTA: fíjate bien que la base de datos y el sitio web estén en la misma región. Esto es importante por motivos de performance.

Yo elijo Sur de Brasil por motivos que explico en este post.

image

Bien, en base al repositorio de código que uses, elegís esta opción. Para tratar de ser lo más genérico posible, yo voy a hacer un deployment con FTP (por lo tanto no requiero tildar Publish from source control).

Nota: si no usas ningún repositorio de código, te sugiero que no tildes la cajita de Publish from source control y subí el sitio web mediante FTP al igual que yo.

image

Ahora, seguimos estos pasos:

image

image

 

 

image

 

image

 

Una vez que tenemos lo anterior, copia link de FTP HOST NAME y abrilo con el Explorador de Windows (Mi PC). Nos va a aparecer una ventana como la siguiente, a la cual debemos acceder con el usuario debajo de DEPLOYMENT / FTP USER (marcado en amarillo).

 

image

Ahora vayamos a site > wwwroot, ahí están los archivos de nuestro sitio web:

image

Simplemente, pegamos los archivos ahí. Para hacer una prueba sencilla, acabo de crear un archivo . php (con bloc de notas) que imprime por pantalla “Hola nube”. Probá hacer lo mismo, y pega el archivo en la carpeta anterior.

image

(Ya sé, ya sé, me gustan los íconos grandes, no me juzgues…)

 

 

 

 

image

Listo. Ahora entra a <tusitioweb>.azurewebsites.net y tendrías que ver algo como esto:

image

Listo. Ya está corriendo desde Brasil el archivo que acabas de crear.

 

Conectarse a la base de datos MySQL

Bueno, acá ya hicimos algo super fácil. Agreguemos la conexión a la base de datos que tampoco debería ser complejo. Para tomar la información de conexión, volvemos al portal y buscamos View connection strings.

image 

Busquemos los siguientes campos:

image

Y reemplazamos en el código de conexión, que es el siguiente:

image

Luego escribamos algo de código como para probar que funcione:

image

Acá está el código por si querés copiarlo.

<?php
// Información de conexión a la base
$host = "Data source";
$user = "Usuario";
$pwd = "Password";
$db = "Base de datos";

try{
$conn = new PDO( "mysql:host=$host;dbname=$db", $user, $pwd);
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "CREATE TABLE registration_tbl(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
name VARCHAR(30),
email VARCHAR(30),
date DATE)";
$conn->query($sql);
}
catch(Exception $e){
die(print_r($e));
}
echo "<h3>Table creada!</h3>";
?>

 

 

 

Ahora como hicimos antes, copiar y pegar en wwwroot del FTP:

image

Dale Yes to All.

image

Eso fue fácil. Si probamos entrar de nuevo, deberíamos recibir una excepción ya que estamos tratando de crear una tabla que ya existe, ¿no?

image

Perfecto. Tabla creada, sitio funcionando. Estos pasos te sirven para entrar a un tablero de administración de tu sitio web:

image

image

Acá tenés el dashboard de tu base de datos MySQL (online). Te recomiendo que le pegues una revisada ya que hay algunas cosas interesantes que podés ver desde ahí.

image 

Ya podemos subir, administrar y demás. Sólo te queda armar el sitio, pero eso ya no es parte de Azure.

 

 

 

Dominios

Azure por el momento no ofrece servicios de DNS. Por lo tanto, si ya contas con tu www.misitio.com, simplemente lo que debes hacer es redirigir el CNAME a la dirección que te provee Azure, que es <Nombre de mi servicio>.azurewebsites.net.