Laravel Nginx · 4 min read · Jan 23, 2026

Instalando Laravel en Ubuntu para Nginx

Ya hemos hablado sobre la instalación de Laravel para servidores Ubuntu basados en Apache en nuestro último tutorial. Este tutorial te mostrará cómo instalar el framework PHP Laravel en una instalación de servidor Nginx.

Pre-Requisitos

Como siempre, debes asegurarte de que el servidor esté bien actualizado antes de proceder.

sudo apt-get update  
sudo apt-get upgrade

Este tutorial se basa en la suposición de que ya tienes un servidor basado en Ubuntu configurado. También asegúrate de tener Git instalado. Si no, puedes seguir nuestra guía para hacerlo.

Instalando Nginx

Instalar el servidor Nginx es simple y directo. Así que hagámoslo.

sudo apt-get install nginx

Instalando PHP-FPM

PHP no funciona con Nginx de la misma manera que lo hace con Apache. Para Nginx, necesitas la implementación FastCGI de PHP llamada PHP-FPM (PHP-FastCGI Process Manager). Instalemos PHP entonces. También necesitamos la extensión Mcrypt de PHP para que Laravel funcione.

sudo apt-get install php5-fpm php5-cli php5-mcrypt

Configurando Nginx para Laravel

Antes de proceder, hagamos una configuración básica del servidor Nginx que hemos instalado. Primero necesitamos crear el directorio donde se instalará Laravel.

sudo mkdir -p /var/www/html/laravel

Hecho esto, ahora tenemos que decirle a Nginx que aquí es donde funcionará nuestro sitio. Para eso necesitamos crear una entrada de virtualhost en Nginx. Nginx almacena la configuración predeterminada en un archivo llamado default en /etc/nginx/sites-available/default. Vamos a copiarlo y crear nuestra propia versión del archivo.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/laravel

Vamos a editar el archivo de configuración

sudo nano /etc/nginx/sites-available/laravel

Verás algo como

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;
        index index.html index.htm;

        server_name localhost;

        location / {
                try_files $uri $uri/ =404;
        }
}

He eliminado los comentarios por razones de legibilidad. Necesitarás cambiar la ubicación raíz que sería /var/www/html/laravel/public en nuestro caso. También necesitas cambiar la variable server_name ya sea al nombre de dominio que estarías usando o a la dirección IP de tu servidor.

Edita el archivo para que se vea como lo siguiente

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/html/laravel/public;
    index index.php index.html index.htm;

    server_name server_domain_or_IP;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Guarda el archivo después de editar. Ahora necesitamos habilitar este archivo de configuración. Hasta ahora, solo el perfil predeterminado está activo. Para hacerlo, necesitamos crear un enlace simbólico al archivo laravel en el directorio /etc/nginx/sites-enabled. También necesitaríamos deshabilitar el perfil predeterminado para que no interfiera con nuestra instalación de laravel.

sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/   
sudo rm /etc/nginx/sites-enabled/default

Nuestra configuración del servidor Nginx está completa. El siguiente paso es configurar PHP-FPM.

Configurar PHP-FPM

Este paso es simple y requiere que cambiemos una variable en el archivo de configuración de PHP. Es hora de abrir php.ini

sudo nano /etc/php5/fpm/php.ini

Busca el siguiente texto en él

;cgi.fix_pathinfo=1

Descomenta la variable eliminando el ; del frente y cambia su valor a 1 para que se vea como

cgi.fix_pathinfo=0

Esto le dice a PHP que no ejecute un script con un nombre similar si el original no se encuentra, lo cual es importante desde el punto de vista de la seguridad.

Por último, también necesitamos habilitar la extensión mcrypt que instalamos anteriormente.

sudo php5enmod mcrypt

Eso es todo. Ahora solo reinicia el servicio PHP-FPM para cargar los cambios.

sudo service restart php5-fpm

Instalando Composer

Composer es una herramienta de gestión de dependencias que nos permite instalar varios frameworks y bibliotecas PHP a través de un solo comando. Se encarga de todos los otros paquetes y dependencias que tendrías que haber instalado por separado para instalar un framework si optas por la ruta manual. Puede ahorrar mucho tiempo y molestias. Vamos a instalar Laravel usando Composer.

Descarga Composer. Asegúrate de estar en tu directorio personal primero.

curl -sS https://getcomposer.org/installer | php

Esto descarga el archivo composer.phar en tu directorio personal. Ahora, si lo deseas, puedes ejecutarlo desde aquí usando algo como php composer.phar [comando], pero como preferimos ejecutar composer globalmente, necesitamos moverlo a una ubicación más apropiada para que podamos ejecutarlo fácilmente.

sudo mv composer.phar /usr/local/bin/composer

Ahora puedes ejecutarlo directamente llamando a composer desde cualquier lugar.

Instalando Laravel

Ahora que hemos instalado composer, necesitamos instalar Laravel. Instálalo con el siguiente comando.

sudo composer create-project laravel/laravel /var/www/html/laravel --prefer-dist

Esto descarga e instala la última versión de Laravel (5.2 actualmente) en tu servidor.

Antes de terminar el tutorial, necesitamos dar permisos adecuados a algunos directorios.

sudo chgrp -R www-data /var/www/html/laravel  
sudo chmod -R 775 /var/www/html/laravel/storage

Conclusión

Eso es todo. Tu instalación de Laravel está completa. Ahora lanza http://servername o http://serverip en tu navegador. Deberías ver la siguiente pantalla, si todo ha salido bien.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.