Introducción

Laravel es un framework tan completo y fácil de extender que sólo es necesario un conocimiento básico y superficial de programación PHP para usarlo. Sin embargo, la instalación de Laravel puede llegar a ser un reto.

Laravel requiere, tanto en entorno de producción como de desarrollo, la habilitación de servidores http, MySQL y PHP y cierto cariño extra: instalar o habilitar módulos de PHP adicionales, configurar hosts virtuales en apache o nuevos sites en nginx y otros detalles por el estilo que son relativamente sencillos de resolver sólo si ya lo has hecho antes alguna vez.

Por suerte existe una manera alternativa de instalar Laravel que nos permite ahorrarnos toda esa configuración pormenorizada de servidores. Esta alternativa es ideal tanto para newbies como para expertos, puesto que permite crear en cuestión de segundos entornos de desarrollo optimizados para correr Laravel.

Esta guía está dirigida a instalar Laravel en Windows y Linux, ya que estos dos sistemas comparten este mismo método de instalación. Bienvenido/a a “Cómo instalar Laravel en Windows y Linux sin tener ni #$?%!& idea de nada”.

Vocabulario

Antes de proceder a la instalación, una pequeña guía sobre qué es cada cosa:

  • Laravel: framework PHP que nos permite desarrollar aplicaciones web, APIs y webs de toda la vida, ofreciéndonos soluciones estables y elegantes a problemas cotidianos (autenticación de usuarios, bases de datos, seguridad…).
  • Composer: Gestor de dependencias PHP, gratuito y de código abierto. Básicamente nos permite obtener cualquier paquete desarrollado en PHP (como Laravel).
  • VirtualBox: programa gratuito mantenido por Oracle para crear máquinas virtuales que nos permiten correr cualquier sistema operativo y programa sin necesidad de modificar (ni poner en riesgo) nuestra máquina “real”.
  • Vagrant: Herramienta gratuita y de código abierto que nos permite gestionar máquinas virtuales pre-configuradas desde la terminal o línea de comandos. Estas máquinas virtuales pre-configuradas se han venido a llamar Vagrant boxes. La idea detrás de esta herramienta es que la gente pueda instalar y compartir máquinas virtuales con sistemas operativos y software pre-instalado y pre-configurado, es decir, que los usuarios puedan empezar a usar las máquinas virtuales desde el primer momento.
  • Laravel Homestead: Homestead viene a ser una Vagrant box de Laravel, es decir, una máquina virtual pre-configurada que puede empezar a usarse tan pronto la activamos, prácticamente sin configuración adicional.

Leyendo lo que es cada cosa quizá te hayas hecho ya una idea de cómo vamos a instalar laravel de la forma más sencilla imaginable, estos son los pasos:

  1. Instalar Composer
  2. Instalar Laravel en una carpeta local de nuestro sistema
  3. Instalar VirtualBox y Vagrant
  4. Instalar Homestead
  5. Configuración mínima de Homestead y a disfrutar

¡Eso es todo! Cinco pasitos, cuatro instalaciones prácticamente automáticas y una configuración que es cambiar cuatro o cinco líneas en un fichero de nada… Si esto no lo puede hacer cualquiera, me corto una pierna a bocados. Vayamos al lío:

Paso 1: Instalar Composer

Si usas Windows estás de suerte. Sólo tienes que bajarte e instalar el instalador oficial de composer: Composer-Setup.exe. El instalador te añadirá el comando composer a tu PATH de Windows, así que podrás usarlo desde cualquier terminal que abras a partir de ahora. Pan comido. Ya puedes pasar al paso 2.

Si usas Linux vas a tener que trabajártelo un poquito más. Necesitarás instalar en tu sistema linux los siguientes paquetes: curl para bajarte el instalador de Composer desde la línea de comandos, php5-cli para poder ejecutarlo y git, que además de un gestor de repositorios es una dependencia de Composer. En definitiva,utiliza tu gestor de paquetes linux favorito e instala los tres paquetes. Desde Ubuntu y similares, por ejemplo, haríamos lo siguiente:

sudo apt-get update && sudo apt-get install curl php5-cli git 

Sigue los pasos, confirma lo que haya que confirmar (con cariño) y una vez tengas los tres paquetes instalados, podrás bajarte y ejecutar el instalador de composer con el siguiente comando:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Este comando hace dos cositas: instala composer y crea una copia de composer.phar en /usr/local/bin/composer, lo que nos permite ejecutar el comando composer desde cualquier terminal de nuestro sistema a partir de ahora. Pues eso es todo, ya tenemos instalado Composer en nuestro Linux, pasemos al siguiente paso.

Paso 2: Instalar Laravel

Ya que tenemos instalado Composer, vamos a hacernos el favor de utilizarlo. En primer lugar vamos a bajarnos y a hacer accesible desde cualquier punto de nuestra terminal el instalador de Laravel:

composer global require "laravel/installer=~1.1"

Ahora que tenemos este fantástico instalador de Laravel a mano, navega desde terminal hasta tu directorio de proyectos (o crea un nuevo directorio donde generar nuevos proyectos en el futuro). Una vez en la raíz de este directorio ejecuta:

laravel new nombre-de-tu-proyecto

Este sencillo comando creará un nuevo directorio con el nombre de tu proyecto, en el que bajará una copia de la última versión estable de Laravel, lista para empezar a desarrollar.

¿Pero de qué sirve desarrollar, es decir, editar y crear ficheros dentro del framework de Laravel, si no podemos ver los cambios que vamos haciendo? Es necesario, por tanto, instalar un entorno de desarrollo adecuado, capaz de servir Laravel y mostrarnos en cualquier navegador los cambios que vamos realizando. Pasemos, por tanto, al Paso 3.

Paso 3: Instalar VirtualBox y Vagrant

VirtualBox y Vagrant son programas gratuitos tan fáciles de instalar como cualquier otro.

En Windows basta con que te bajes y ejecutes el instalador para las últimas versiones de VirtualBox y Vagrant desde sus respectivas páginas oficiales de descarga aquí (VirtualBox) y aquí (Vagrant).

Para Linux basados en Debian (como Ubuntu) bájate e instala los ficheros .deb de cada programa. También los encontrarás en las páginas oficiales de descarga, la específica para Linux de VirtualBox aquí y la de Vagrant aquí.

Yo, que uso Ubuntu, suelo hacer lo siguiente con cada uno de los paquetes .deb que me bajo:

dpkg -i nombre-del-paquete.deb
sudo apt-get install -f

Eso es todo, ya tenemos en nuestro sistema VirtualBox y Vagrant. Casi tan fácil como robarle un chupete a un bebé. Vayamos al cuarto paso.

Paso 4: Instalar Homestead

La manera más sencilla de instalar Laravel Homestead es echando mano de Composer. Como ya lo tenemos instalado, esto va a ser coser y cantar. Ejecuta:

composer global require "laravel/homestead=~2.0"

Este comando creará una copia del ejecutable homestead dentro de ~/.composer/vendor/bin, que debería ser accesible a partir de ahora desde cualquier terminal de tu sistema. Si no es así, asegúrate de que ese directorio está en el PATH de tu sistema.

Ahora que ya tenemos Homestead instalado, podemos pasar al último paso

Paso 5: Configuración mínima de Homestead

Para poder comunicarte de forma segura y sin necesidad de passwords con la máquina virtual que crearemos en breve, necesitarás crear un par de claves privada/pública SSH (si no las tienes ya). En Linux esto suele ser tan fácil como ejecutar el comando:

ssh-keygen -t rsa -C "un-nombre-de-usuario@homestead"

Sigue los pasos que aparecerán y recuerda tanto el nombre de la clave (que podrás elegir o dejar uno por defecto, normalmente id_rsa) como el directorio donde se ha guardado, normalmente en ~/.ssh.

En Windows necesitarás bajarte un generador de claves, como por ejemplo PuTTYgen, disponible aquí, generar la clave y guardarla en cualquier directorio seguro de tu sistema. Recuerda el nombre y el directorio donde guardes el par de claves.

Una vez tenemos listas nuestras claves SSH pasemos a inicializar Homestead y a configurarlo con cariño. Ejecuta el siguiente comando para crear en tu sistema los ficheros de configuración de Homestead que editaremos a continuación:

homestead init

Este comando creará el fichero Homestead.yaml dentro del directorio ~/.homestead. Edita ese fichero con tu editor de texto o IDE favorito, te aparecerán una serie de opciones de configuración de Homestead, las únicas que es necesario modificar son las siguientes:

authorize: directorio-donde-está-tu-clave-pública/nombre-de-tu-clave-pública

keys:
    - directorio-donde-está-tu-clave-privada/nombre-de-tu-clave-privada

folders:
    - map: directorio-donde-están-tus-proyectos
      to: /home/vagrant/nombre-del-directorio-donde-están-tus-proyectos

sites:
    - map: nombre-de-tu-proyecto.app
      to: /home/vagrant/nombre-del-directorio-donde-están-tus-proyectos/nombre-de-tu-proyecto/public

A modo de referencia, dejo por aquí un ejemplo completo de Homestead.yaml editado en un sistema Linux:

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/WebDev
      to: /home/vagrant/WebDev

sites:
    - map: menuvel.app
      to: /home/vagrant/WebDev/menuvel/public

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local

Puedes editar el resto de líneas a conveniencia, aunque no es estrictamente necesario. En cualquier caso, acuérdate del valor de las líneas ip y map (dentro de sites).

Es muy conveniente agregar ese par de valores al fichero hosts de nuestro sistema, que encontrarás normalmente dentro del directorio /etc (en Linux) o C:\Windows\System32\drivers\etc (en Windows). Abre el fichero hosts con tu editor de texto o IDE favorito y agrega en una línea el par de valores. Según el ejemplo que puse antes, agregaríamos la línea:

192.168.10.10   menuvel.app

Esto nos permite vincular la IP de nuestra máquina virtual a la dirección menuvel.app.

¡Eso es todo! Ahora ya podemos ejecutar nuestra máquina virtual pre-configurada y lista para correr Laravel. Tan sólo has de escribir en tu línea de comandos:

homestead up

Una vez que Homestead acabe de hacer su magia (la primera vez puede que tarde un poquito) podrás acceder a tu proyecto a través de cualquier navegador escribiendo la dirección que indicaste en sites, en el ejemplo sería http://menuvel.app.

¡Ya hemos terminado! Lo mejor de todo es que ahora puedes editar los ficheros de tu proyecto Laravel (el que creamos durante el Paso 2) y automáticamente se sincronizarán en Homestead, con lo que podrás ir viendo los cambios que vayas haciendo en tu proyecto de forma inmediata.

Otros comandos básicos de Homestead:

  • Si decides hacer algún cambio en Homestead.yaml, debes ejecutar homestead provision para actualizar Homestead con los nuevos cambios en su configuración.
  • Para cerrar Homestead y terminar la ejecución de la máquina virtual puedes utilizar el comando homestead destroy.

Conclusión

Espero que la instalación de Laravel siguiendo estos pasos te haya parecido la mar de sencilla y que puedas dedicar tu tiempo a estudiar el framework y crear nuevas aplicaciones web en lugar de perderlo gestionando servidores. Si te surge alguna duda, detectas algún error o crees que me he dejado algún dato importante, deja tu comentario más abajo.