Blog

Como instalar y configurar Laravel

Laravel es un framework de PHP desarrollado por Taylor Otwell en el año 2011 cuya popularidad en el mundo de los desarrolladores Web ha ido creciendo día a día gracias a su potencia y su facilidad de uso, utilizando una sintaxis muy sencilla, elegante y fácil de entender que te permite ahorrar mucho tiempo utilizando muy poco código. Laravel dispone de una amplia comunidad de usuarios muy activa que hace aún más atractivo el uso de este Framework.

Instalación de Laravel

Para la instalación de Laravel es necesario que tengas instalado en tu equipo o servidor Composer, si no sabes como instalarlo puedes leer este post donde explicamos como instalar composer.

Antes de instalar Laravel tienes que asegurarte de que tu servidor cumple con los requerimientos mínimos:
PHP 7 (versión de Laravel 5.5, la última versión mientras se escribe este artículo)

OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
XML PHP Extension

Abrimos el terminal y nos situamos en la carpeta raiz de nuestro host. Para este ejemplo voy a utilizar MAMP por lo que me voy a la carpeta htdocs que está en la siguiente ruta:

cd /Applications/MAMP/htdocs

Ahora vamos a comenzar con la instalación de Laravel, deberemos de ejecutar el siguiente comando sustituyendo nombre-de-proyecto por el nombre que queramos para nuestro proyecto: composer create-project --prefer-dist laravel/laravel nombre-de-proyecto . En nuestro caso vamos a llamarlo por ejemplo blog. Por lo que ejecutamos el siguiente comando:

composer create-project --prefer-dist laravel/laravel blog


En este momento se empezará a ejecutar la instalación y en unos pocos minutos tendrás ya instalado Laravel en tu servidor.

Muy sencillo ¿verdad? Vamos ahora a hacer una configuración básica para poder empezar a trabajar con Laravel.
 

Configuración de Laravel

Carpeta Public

Public es la carpeta pública por defecto de Laravel y es la única que por motivos de seguridad debería de ser visible en nuestro servidor Web, en el caso de no tocar la configuración de nuestro servidor todas las url de nuestra Web incluirían la palabra public en nuestras urls lo cual no es nada útil. Dado que estamos trabajando en un servidor local y que nuestra aplicación la hemos llamado blog, para visualizar la página de inicio de Laravel por defecto deberemos de ir a la dirección http://localhost/blog/public. En el caso de instalar Laravel en un servidor en producción (o copiar la Web de nuestro servidor local a nuestro servidor en producción) bajo nuestro dominio la url de la página de inicio será midominio.com/public lo que es bastante molesto, además de ser perjudicial para el SEO, ya que la palabra public estará siempre presente en nuestras url (ej. dominio.com/public/quienes-somos, dominio.com/public/blog,...).  

Existen varias formas de eliminar la palabra public de nuestras urls pero en este caso vamos a explicar la forma recomendada oficialmente por Laravel que no es otra que modificar el directorio raiz o document root de nuestro servidor. Te voy a explicar como hacerlo en modo local con MAMP y en un servidor en producción con Plesk.
En MAMP lo que debemos hacer es crear un host nuevo pulsando en el icono + situado en la parte inferior izquierda de la pantalla. Ponemos un nombre de servidor, en nuestro ejemplo midominio.dev, seleccionamos la versión de PHP con la que queramos trabajar y seleccionamos como raiz del documento la carpeta public de nuestra instalación de Laravel. Después de pulsar el botón guardar ya podremos acceder a la página de inicio de nuestra instalación de Laravel poniendo en nuestro navegador la dirección http://midominio.dev evintando así la palabra public en todas las urls de nuestra web.

Para realizar la misma operación en nuestro servidor de producción tendremos que asegurarnos de que este permite hacer esta modificación. Si tu idea es instalar Laravel en un servidor compartido olvídate de esta solución porque la empresa de hosting no te permitirá hacer este cambio. Para ello yo te aconsejo contratar un servidor VPS del que tendrás todo el control y podrás configurarlo a tu gusto. Si no tienes en servidores VPS contratado puedes visitar la Web de la empresa Profesional Hosting (https://goo.gl/AVFwFo) que tiene servidores VPS administrador a unos precios muy competitivos y de buena calidad. La diferencia entre el coste de un compartido y un VPS merece mucho la pena.

Para modificar el documento raíz de nuestro documento entramos en el plesk de nuestro servidor y nos vamos al espacio Web del dominio con el que vayamos a trabajar. Una vez ahí pulsamos la opción “Configuración de hosting”.

En esta nueva ventana nos vamos al campo Raíz del documento y lo modificamos para que en lugar de apuntar a httpdocs lo haga a httpdocs/public

Con este simple paso ya hemos configurado nuestro hosting para Laravel, evitando así que la carpeta public aparezca en todas nuestras URLs y mejorando la seguridad de nuestro sitio Web.

Permisos en directorios

Para un correcto funcionamiento de Laravel es necesario que las carpetas storage y bootstrap/cache tengan permisos de escritura. Si no las tienen debes de entrar en el terminal, situarte en el directorio raíz de Laravel y ejecutar los comandos:

chmod -R 777 storage
chmod -R 777 bootstrap/cache

Configuración general de Laravel

Vamos ahora con la configuración general. Lo primero que tenemos que hacer es ir al directorio config y abrir el archivo config.php. En este archivo nos vamos a encontrar un array donde tendremos que modificar varios valores, en primer lugar vamos a configurar la zona horaria y para ello vamos a modificar el valor de la clave ‘timezone’, en nuestro caso lo vamos a configurar para Madrid:

'timezone' => 'Europe/Madrid', 

Si estás en otro país aquí tienes acceso al listado de zonas horarias permitidas en PHP http://php.net/manual/es/timezones.php y sustiuir en este caso Europe/Madrid por la que corresponda.

Vamos ahora a configurar el idioma principal de nuestra Web. Para ello simplemente modificaremos el valor de locale que por defecto viene para inglés (en) y lo cambiaremos por el español (es).

'locale' => 'es',

Otro valor que quizá te interese modificar es el de fallback_locale Esto es útil si la Web que vas a desarrollar con Laravel va a ser multiidoma e indica que traducciones mostrar en el caso de que no exista una carpeta de idiomas para uno de los idiomas con el que estemos trabajando. Por ejemplo si mi Web es multiidioma y utilizo español, inglés y francés y no tengo la traducción del francés en este valor le puedo indicar que en ese caso utilice por defecto las traducciones del español.

'fallback_locale' => 'es',

Configuración de la base de datos

La configuración de la base de datos se parametriza en el archivo .env que encontrarás en el directorio raíz de tu instalación en Laravel. 

Con Laravel puedes utilizar por defecto cualquier de los siguientes tipos de bases de datos: MySql, PostgreSQL, SQLite y SQL Server. En la clave DB_CONNECTION deberemos de indicar el tipo de base de datos con la que vamos a trabajar, en nuestro caso será MySql y después simplemente configuraremos el resto de valores según sea el caso:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=mi_base_de_datos
DB_USERNAME=mi_usuario
DB_PASSWORD=mi_contraseña

Con todo esto ya tienes completada tu instalación de Laravel y puedes empezar a disfrutar de lo que es desarrollar con este maravilloso framework de PHP.