Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Eleva tu PHP a la nube

by
Difficulty:IntermediateLength:LongLanguages:

Spanish (Español) translation by steven (you can also view the original English article)

Este artículo te guiará a través del alojamiento en la nube para tu aplicación PHP con Pagoda Box. Detallará cómo manejar las dependencias de PHP, habilitará tus bases de datos MySQL (y depurará localmente) y personalizará fácilmente varios aspectos de PHP.


Introducción

Como desarrollador que ha estado jugando con PHP desde la edad de 11 años, es difícil recordar muchas cosas que han cambiado absolutamente la forma en que desarrollo. En 2007, elegí CodeIgniter, lo que me hizo reconsiderar cómo estructuro mi código y uso OOP para hacer las cosas. En 2010, comencé a trabajar con Git y Git Flow para el trabajo en equipo y las sucursales, pero, recientemente, lo más importante para cambiar mi flujo de trabajo de desarrollo fue una "Plataforma como servicio", llamada Pagoda Box.

Puede que seas un desarrollador de Rockstar que sepas cómo configurar una pila LAMP, pero cuánto tiempo de desarrollo potencial desperdicias al configurarlo, optimizarlo, protegerlo, bloquearlo, escalar recursos y monitorear el tráfico.

Todos los días, veo a un desarrollador que lucha para defender su servidor de algún grupo de piratas informáticos o niños script, que se inunda en el puerto, que tiene problemas para hacer funcionar un parche de seguridad aleatorio, que lucha por migrar a servidores más grandes y potentes, que se enoja al intentar configurar Capistrano , la lista continua. Los servicios como Pagoda Box pueden ayudarte a omitir todo eso; así que veamos cómo.


Paso 1 - Registrarse en Pagoda Box

El primer paso es conseguir una cuenta. Es gratis, así que adelante.

Register

Paso 2 - Crea tu aplicación

Cada aplicación debe tener un nombre único, ya que también se usan para obtener una vista previa de las URL. Puedes llamar a esta aplicación como desees, ya que pronto la ocultarás detrás de un dominio, pero llámala como algo obvio y memorable.

SSH Key form

Paso 3 - Configurar Git

Git es un sistema de gestión de versiones extremadamente útil. En este momento, es enormemente popular gracias a sitios como GitHub que permiten el alojamiento gratuito de códigos sociales, pero también es ideal para implementar tu código.

Si eres nuevo en Git, prueba el curso intensivo.

Si aún no lo has hecho, configura Git. Su documentación te ayudará a empezar. Los usuarios de Windows lo encontrarán un poco más difícil que los usuarios de OSX o Linux, por lo que si tienes una Máquina Virtual de Ubuntu por ahí, sería un buen momento para activarla.


Paso 4 - Crea tu clave SSH

Para enviar tu código a Pagoda Box, debes autorizar a tu computadora para que tenga acceso a las aplicaciones en tu cuenta. Crea una clave SSH y pégala aquí.

SSH Key form

Paso 5 - Implementar tu código

Primero, configura una carpeta para tu aplicación y configura los controles remotos de Git. Los mandos a distancia son esencialmente apodos para una URL de repositorio. Al configurar este control remoto, estamos dejando que nuestro representante local de Git sepa cómo enviar el código a Pagoda Box.

Ahora, con toda esta configuración de cuenta y entorno hecha, podemos comenzar a implementar el código. Por ahora, desplegaremos una aplicación simple Hello World:

Este es un pequeño truco de la línea de comandos para poner texto en un archivo. Alternativamente, puedes crear este archivo con tu editor de texto favorito o IDE.

Hasta ahora, hemos creado una nueva carpeta para nuestro sitio web, inicializamos Git, agregamos un control remoto que le dice a Git dónde vive la aplicación Pagoda Box, y agregamos un nuevo archivo index.php, que simplemente dirá ¡Hola mundo!. Siguiente:

Aquí es donde ocurre la magia. Presionarás a un control remoto de Git como cualquier otro repositorio, pero luego verás que la salida de Pagoda Box se hace cargo y crea un despliegue. Esto activará una nueva instancia cada vez y pasará instantáneamente de la instancia en vivo a esta nueva instancia, lo que significa actualizaciones inmediatas, a diferencia de los sistemas de implementación de archivos basados en FTP lentos. Además, a diferencia de algunos servicios similares, todos tus archivos temporales (caché, registros, carga de imágenes, etc.) estarán allí después de cualquier cambio de tamaño o re-implementación. ¡Increíble!

Ahora, si actualizas la página de Pagoda Box, verás un Panel con todo tipo de opciones.


Paso 6 - Creando un Boxfile

Pagoda Box tiene un archivo de configuración especial: Boxfile. Esto va en la raíz de tu aplicación. Un ejemplo avanzado puede parecer algo como esto:

Este ejemplo te da la oportunidad de crear carpetas de escritura, configurar tu index_list (que es index.php por defecto) y cambiar todo tipo de configuraciones de PHP que normalmente estarían en un archivo php.ini.

La línea más importante aquí es:

Pagoda Box te permite listar tus dependencias de aplicaciones. El controlador "mysqli" es "MySQL mejorado", que deberías comenzar a usar, ya que "mysql" quedará obsoleto en PHP 5.4. "curl" y "gd" son bastante estándar y "mbstring" te ayuda a trabajar con el código UTF-8.

Es bueno saber que están disponibles, junto con muchos otros, pero para este tutorial solo necesitaremos lo siguiente:

Así que vamos a hacer nuestro nuevo Boxfile y guardarlo:

Usaremos esto más adelante.


Paso 7 - Crear una base de datos

En el momento de escribir este artículo, Pagoda Box solo es compatible con bases de datos MySQL, lo cual está bien, ya que eso es lo que la mayoría de los desarrolladores utilizan.

Podemos iniciar tantas instancias de bases de datos pequeñas como queramos de forma gratuita; solo comenzamos a pagar cuando aumentan de tamaño, por lo que no te sorprenderá una factura enorme solo por crear un sitio web. Al igual que las instancias web, también se pueden escalar para crecer con su sitio web.

New Database

Para hacer uno nuevo, haz clic en el icono + y asígnale un nombre. Verás una barra de progreso en la parte superior mientras se construye; entonces la página se actualizará.


Paso 8 - Conectando desde tu aplicación

Conectarse a través de PHP es muy fácil. Se le asignan varias variables $_SERVER, que contienen credenciales para cada base de datos que tienes. Esto significa que puedes mantener las contraseñas codificadas de tu aplicación, lo cual es muy útil si no quieres que todos tus desarrolladores vean las contraseñas en vivo o si tienes tu sitio web completo en GitHub, como algunas personas están empezando a hacerlo. .

Este es un ejemplo básico de las variables en uso: conectarse a tu base de datos MySQL a través de la extensión PDO. Si estás utilizando un framework, como CodeIgniter, puedes insertar esas variables en tus archivos de configuración database.php.


Paso 9 - Conectando Remotamente

Algunos servidores web, especialmente los de configuración de cPanel run-of-the-mill, tienen instalado phpMyAdmin y pueden configurarse para permitir el acceso remoto a las bases de datos MySQL.

En lugar de este enfoque, Pagoda Box utiliza Ruby Gem para, entre otras cosas, crear un túnel SSH seguro temporal. Esto significa que tus bases de datos MySQL están bloqueadas detrás de un firewall y solo son accesibles a través de esta conexión segura SSH.

Por lo tanto, para instalar la gema ejecuta:

Luego, para crear el túnel, simplemente ejecuta:

La primera vez que ejecutes este (o cualquier otro comando de pagoda gem) se te pedirá un nombre de usuario y una contraseña. Este es tu nombre de usuario y contraseña de Pagoda Box, y es necesario para que la gema pueda actuar en tu nombre y no tengas nada que ver con tu base de datos.

Ve a tu panel y haz clic en la base de datos, luego haz clic en "Mostrar credenciales" para ver una ventana de información como esta:

Database Credentials

Usa estas credenciales para conectarte. No te olvides de especificar qué puerto; aparece en la salida de la gema anterior, no en el cuadro verde. Recuerda que te estás conectando al túnel local, no directamente a la base de datos.


Paso 10 - Haciendo un Blog

¿Qué tipo de tutorial sería este si no implicara hacer un blog en 20 minutos?

Para todo el desarrollo, realmente deberías estar construyendo cosas localmente usando MAMP, XAMPP, WAMP, etc., luego implementando cambios en el código y la base de datos usando algún tipo de "Migraciones" o cosas de seguimiento de cambios de esquema, pero lo haremos a la antigua.

Primero conéctate a tu base de datos de forma remota a través del túnel, luego ejecuta esta consulta para crear una nueva tabla:

Con algunas publicaciones de prueba en su lugar, podemos crear este index.php:

Con ese archivo guardado y nuestro nuevo Boxfile (del paso 6) en su lugar, podemos implementar estos nuevos cambios:

Visita "http://my-awesome-app.pagodabox.com" y mira la salida:

Database Credentials

Claramente, esto no es algo que querrás ejecutar en tu sitio web, pero hace lo suficiente. Puedes ver que el contenido de tu base de datos se envía al navegador y que la URL de demostración está funcionando. Puedes reemplazar esto con tu CMS de tu elección, o construir algo personalizado.


Paso 11 - Usa un dominio real

No tiene sentido tener tu maravilloso blog nuevo en un subdominio pagodabox.com; así que vamos a aparcar un dominio sobre él.

Primero, en la pestaña DNS/SSL de tu panel, agrega algunas entradas para tu dominio:

Database Credentials

Ahora que tu aplicación está lista para aceptar un dominio, debes dirigirte a quienquiera que maneje el DNS para tu dominio. Ve al área de administración de DNS y establece un registro A para "myawesomedomain.com" como "50.97.141.37", que es la dirección IP que aparece en la interfaz de tu aplicación. Estas direcciones IP no son únicas por aplicación, pero no siempre serán las mismas. Establece un registro CNAME para "www.myawesomedomain.com" al alias "myawesomedomain.com" y debería estar todo listo.


Resumen

Todo esto puede parecer bastante diferente de cómo trabajas en este momento, pero empieza a pensar cuánto trabajo te estás ahorrando a largo plazo. El uso de PaaS es la misma razón por la que usamos jQuery sobre JavaScript nativo, o los frameworks de PHP sobre la escritura de PHP nativo. ¿Por qué jugar con detalles menores cuando puedes concentrarte en construir una aplicación increíble?

Otras alternativas que podrías considerar son PHPFog y Orchestr.io, que ofrecen servicios similares. ¡Diviértete, y gracias por leer!

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.