Cómo configurar Laravel 5 en Nginx

Dificultad: Fácil
Tiempo de Lectura: 3 minutos

Anteriormente aprendimos a instalar Laravel 5 en nuestro servidor compartido cPanel, ahora el objetivo es instalar un nuevo proyecto en Laravel en un servidor web Nginx con Php-fpm en un nivel básico utilizando Php 5.4 y Nginx 1.8.0, así que empecemos con la configuración en nuestro entorno CentOS 6.6.

Nginx es ahora uno de los principales servidores web del mercado ya que nos proporciona una curva de aprendizaje bastante rápida y con el plus de ser uno de los web servers que consume menos recursos de nuestros servidor dedicado o de nuestro Cloud VPS, aunado a esto es un servidor web que es muy rápido sirviendo archivos estáticos (imágenes, html, css, js) lo que nos ayuda a que nuestros sitios carguen de una forma más rápida y el server no sufra a la hora de despachar este contenido. Con respecto a Php-fpm, será el encargado de procesar las peticiones a nuestro código Php mediante un proxy en la configuración de los sitios en Nginx y las peticiones de los archivos .php se pasaran a nuestro proceso php-fpm para ser interpretado el php.

Instalación de Nginx

Lo que debemos hacer en un principio es instalar el repositorio nginx en nuestro servidor con el siguiente comando

rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

Actualizamos nuestro servidor ya que agregamos un nuevo repositorio

yum update

Ahora procedemos a la instalación de Nginx

yum install nginx -y

Iniciamos el servicio

service nginx start

Colocamos el servicio activo para que se inicie cuando el servidor se reinicie

chkconfig nginx on

Ahora ya tenemos instalado Nginx y podemos ver que funciona al entrar desde un explorador a http://IPdelServidor en nuestro caso la ip es http://172.17.0.2/

Puedes consultar tu IP con el siguiente comando

ifconfig eth0 | grep inet | awk '{ print $2 }'

Al entrar a esta dirección te debe mostrar por defecto lo que vemos en la siguiente imagen, esto es un archivo index.html que se encuentra en la ruta /usr/share/nginx/html

Captura de pantalla de 2015-06-04 04:53:58

Podemos consultar la versión de Nginx con el siguiente comando

nginx -v

la respuesta debe ser la siguiente

nginx version: nginx/1.8.0

 

Instalación de Php-fpm

Lo primero que debemos hacer es agregar los repositorios Epel y Remi a nuestro servidor los agregamos con los siguientes comandos

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Actualizamos nuestro servidor

yum update

Instalamos Php 5.4 y Php-fpm

yum --enablerepo=remi,remi-test install php-fpm php-common

Instalamos los modulos más comunes de Php

yum --enablerepo=remi install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

Iniciamos nuestro servicio Php-fpm y lo activamos para que inicie cuando se reinicie el servidor

service php-fpm start
chkconfig php-fpm on

Verificamos nuestra versión de Php

php -v

Nos debe mostrar la siguiente salida y ya tendríamos nuestro Php en la version 5.4.41

PHP 5.4.41 (cli) (built: May 14 2015 23:37:34) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

 

Configuración e instalación de Laravel 5

Para realizar la configuración e instalación de nuestro proyecto en Laravel vamos a partir de que nuestro dominio se llamara laravel.infranetworking.com y ya con esto iniciamos todas las configuraciones paso a paso.

Crear Virtualhost en Nginx

Nos ubicamos en el directorio en donde deben ir nuestros virtualhost

cd /etc/nginx/conf.d/

Creamos el archivos de nuestro subdominio

touch laravel.infranetworking.com.conf

Editamos el archivo

nano -w laravel.infranetworking.com.conf

Pegamos la siguiente configuración en el archivo

#laravel.infranetworking

server {
    listen       80;
    server_name  laravel.infranetworking.com;
    access_log  /var/log/nginx/laravel.infranetworking.com.access.log;
    root /var/www/laravel.infranetworking.com/public;
    index index.php;   

    location / {
	    try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_intercept_errors on; # to support 404s for PHP files not found
        fastcgi_param   REMOTE_ADDR             $remote_addr;
        fastcgi_param   REMOTE_PORT             $remote_port;
        fastcgi_param   SERVER_ADDR             $server_addr;
        fastcgi_param   SERVER_PORT             $server_port;
        fastcgi_param   SERVER_NAME             $server_name;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTP_X_REAL_IP $remote_addr;
        fastcgi_param HTTP_X_NGINX_VERSION $nginx_version;
        fastcgi_connect_timeout 10m;
        fastcgi_send_timeout 10m;
        fastcgi_read_timeout 10m;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 8 128k;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        include        fastcgi_params;
    }

}

Verificamos que este correcta la configuración con el siguiente comando

nginx -t

Nos debe mostrar la siguiente respuesta

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reiniciamos nuestro servicio Nginx

service nginx restart

 

Instalación de Laravel en la ruta /var/www/

Necesitamos para esto instalar Composer rápidamente con el siguiente comando

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Ahora si podemos instalar Laravel 5 desde Composer con el siguiente comando, nos creará una carpeta con el nombre laravel.infranetworking.com con todo el contenido de Laravel 5

composer create-project laravel/laravel --prefer-dist laravel.infranetworking.com

Esperamos un momento mientras composer nos descarga todos los archivos fuente.

Damos permisos de escritura a la ruta storage para que Laravel pueda escribir en los logs

chmod 777 -R /var/www/laravel.infranetworking.com/storage/

Ahora en nuestra maquina para entrar por el dominio laravel.infranetworking.com debemos configurar nuestro archivo hosts y colocamos la siguiente línea

172.17.0.2 laravel.infranetworking.com

Recuerden sustituir la IP por la de su instalación lo común es que sea 127.0.0.1

Ahora ya podemos entrar vía explorador a nuestro subdominio laravel.infranetworking.com y nos cargará la pagina de inicio de Laravel

Captura de pantalla de 2015-06-04 05:35:26

Conclusión

Ahora que hemos configurado nuestro Laravel 5 con Nginx y Php-fpm solo resta crear nuestra aplicación y subirla a nuestro Cloud Vps o Servidor Dedicado.

Cuéntanos: ¿cómo te fue con la Instalación? ¿Algún paso te pareció complicado? ¿Cuál otra instalación nos recomiendas compartir?


¿Te resultó útil el artículo? Compártelo con tus colegas: