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).
Creemos primero el servicio de hosting para el sitio web. Click en New > Compute > Web Site > Custom Create. Vas a ver algo como esto:
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.
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.
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.
Ahora, seguimos estos pasos:
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).
Ahora vayamos a site > wwwroot, ahí están los archivos de nuestro sitio web:
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.
(Ya sé, ya sé, me gustan los íconos grandes, no me juzgues…)
Listo. Ahora entra a <tusitioweb>.azurewebsites.net y tendrías que ver algo como esto:
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.
Busquemos los siguientes campos:
Y reemplazamos en el código de conexión, que es el siguiente:
Luego escribamos algo de código como para probar que funcione:
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:
Dale Yes to All.
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?
Perfecto. Tabla creada, sitio funcionando. Estos pasos te sirven para entrar a un tablero de administración de tu sitio web:
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í.
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.
Comments
Anonymous
December 09, 2014
Hola, resulta muy interesante. Ahora, yo ya tengo un sitio alojado en otro lado. Que pasa si ahora subo todo a Azure, mientras todo está en el otro hosting. Allí se trabaja con cPanel. Es que no me quiero arriesgar, ya que mi sitio esta operativo ahora. Pero quiero migrar y así ver si funciona y cómo lo hace. Espero me puedas decir, gracias!!!Anonymous
December 09, 2014
@Damian, podes ir moviendo tu sitio en paralelo, verificar que todo funcione correctamente y luego apuntas tu dominio.com desde el sitio en cPanel hacia el nuevo hosteado en Azure. Pueden tranquilamente correr ambos en simultaneo!Anonymous
December 10, 2014
The comment has been removedAnonymous
December 18, 2014
The comment has been removed