Anteriormente cuando terminabas tu aplicación web y sentías la necesidad de mostrarla al mundo, debías contratar un servicio dedicado o por lo menos una simple VPS en el cual montar el sistema. Con los avances que tenemos actualmente han surgidos muchos servicios en la nube y con estos no hay necesidad de contar con un servidor o VPS y tampoco ser  expertos en manejo y administración de servidores.

Laravel, Heroku

Heroku en un servicio de nube tipo PaaS (plataforma como servicio) los cuales son IDEs basados en la nube que no sólo incluyen los lenguajes de programación que ya conocemos, sino que además incluyen otras herramientas para el desarrollo. Esto significa que tienes el material necesario para llevar a cabo todas las fases de desarrollo directamente en la web, desde la construcción del sitio web hasta el despliegue total de la aplicación.

En Heroku puedes implementar varias aplicaciones sin ningún costo, siempre y cuando uses su opción de pago mas simple que es un (1) Dyno. Los Dynos son contenedores virtualizados Unix, que proporcionan el entorno necesario para ejecutar una aplicación,  mientras más Dynos  tenga tu aplicación  mejor funcionará pero ya para esto si tendrás que pagar unos cuantos dólares.  La opción gratuita sirve para aplicaciones de mediana capacidad, así que no te preocupes.

Bien luego de la pequeña introducción ahora si les explico como instalar Laravel sobre Heroku.

Pre-requisitos:

Heroku

Creamos un proyecto Laravel 

Desde tu computador:

$ composer create-project laravel/laravel laravelHeroku
$ cd laravelHeroku

Si aún no sabes cómo instalar Laravel aquí te explicamos cómo hacerlo en Windows y Linux.

Configurando Composer.lock

Laravel por defecto  ignora al composer.lock, es por esto que debemos eliminar la referencia que se hace a él editando el archivo .gitignore que se encuentra en el directorio principal de nuestro proyecto (en nuestro caso laravelHeroku) y eliminando la línea que dice composer.lock.

Agregamos el archivo Procfile 

Heroku corre tu aplicación sobre la configuración de un archivo llamado Procfile. Por defecto apache2 apunta a la carpeta web y no a /public. Es por esto que debemos crear un archivo Procfile personalizado para que apunte a la carpeta /public. Este paso es indispensable para que la aplicación corra bien en Heroku.

Crea el archivo Procfile en el directorio principal de tu proyecto (sin extensión y con la P mayúscula), y dentro de éste coloca lo siguiente.

web: vendor/bin/heroku-php-apache2 public/

 Inicializamos nuestro repositorio en Git

Bien ya estamos casi terminando, lo que sigue es lo más sencillo de todo, inicializar un repositorio git nuevamente en el directorio principal del proyecto:

$ git init
$ git add .
$ git commit -m "Commit inicial de Laravel sobre Heroku"

Creando la aplicación Heroku

Para esto necesitábamos instalar heroku-toolbelt. Con esto podremos manejar la aplicación en Heroku desde la consola de comandos.

Ejecutamos este comando en el directorio principal del proyecto:

$ heroku create

Nota: Si te dice que el comando no fue encontrado y ya instalaste heroku-toolbelt, sólo necesitas reinicar la consola.

La consola te pedirá los datos de tu sesión en Heroku, será algo como esto:

Enter your Heroku credentials.
Email: [enter]
Password (typing will be hidden): [enter]
Creating nombre-de-la-app ... done, stack is cedar
http://nombre-de-la-app.herokuapp.com/ | [email protected]:nombre-de-la-app.git
Git remote heroku added

El nombre-de-la-app es el identificador  único que Heroku le asigna a tu proyecto, en un momento te enseñaremos a cambiarlo.

Hacer deploy de un proyecto Laravel en Heroku:

Cuando ejecutes este comando, tu aplicación ya estará publicada en la nube de Heroku, es decir que ya podrás mostrar al mundo entero tu trabajo. ¡Esto es genial!

$ git push heroku master

Si aparece esto al final de la respuesta en la consola, es debido a que fallaste en la creación del composer.lock, vuelve a ese paso.

----> PHP app detected

 !     ERROR:        Your composer.json specifies dependencies, but no composer.lock
       was found, please check it into your repository along with composer.json!


 !     Push rejected, failed to compile PHP app

Si esto no sucede ve al final de la respuesta y busca esto

----> Launching... done, v3
       http://nombre-de-la-app.herokuapp.com/ deployed to Heroku

Allí encontraras la dirección en la que estará publicada tu aplicación en Heroku. ¡Felicidades!

Cambiando en nombre-de-la-app

Bien esto es el bonus, La URL asignada por Heroku seguramente no será la ideal para tu proyecto propio, así que te enseñaremos cómo cambiarla.

  1. Inicia sesión en tu cuenta de Heroku desde su web.
  2. En el Dashboard entra en tu nueva aplicación
  3. Ve a la pestaña Settings
  4. En el campo de texto Name coloca el nombre que quieras darle a tu aplicación y haces click en el botón Rename
  5. Para que el cambio tenga efecto debes avisarle al heroku-toolbelt , entonces debes escribirle  lo siguiente en la consola, dentro de la carpeta del proyecto.
$ git remote rm heroku
$ heroku git:remote -a nuevoNombre

Donde nuevoNombre, es el nuevo nombre que le diste a tu aplicación. Listo recarga y tendrás el nombre que querías.

Bien eso es todo por ahora, si tienes alguna pregunta no dudes en dejar un comentario.

Happy Coding!

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Cómo instalar Laravel 4 en un servidor o hosting compartido Lección siguiente Instalar Laravel 5 en un servidor compartido