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
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
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?