Ya hemos hablado sobre la instalación de Laravel para servidores Ubuntu basados en Apache en nuestro último tutorial. Este tutorial le mostrará cómo instalar el marco PHP de Laravel en una instalación de servidor Nginx.
Requisitos previos
Como siempre, debe asegurarse de que el servidor esté bien actualizado antes de continuar.
sudo apt-get update
sudo apt-get upgrade
Este tutorial se basa en la suposición de que ya tiene una configuración de servidor basada en Ubuntu. También asegúrese de tener Git instalado. De lo contrario, puede seguir nuestra guía para hacerlo.
Instalando Nginx
La instalación del servidor Nginx es simple y directa. Así que hagamos eso.
sudo apt-get install nginx
Instalando PHP-FPM
PHP no funciona con Nginx de la misma manera que lo hace con Apache. Para Nginx, necesita 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 funcione Laravel.
sudo apt-get install php5-fpm php5-cli php5-mcrypt
Configurar Nginx para Laravel
Antes de continuar, hagamos una configuración básica del servidor Nginx que tenemos instalado. Primero necesitamos crear el directorio donde se instalará Laravel.
sudo mkdir -p /var/www/html/laravel
Una vez 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 predeterminado en /etc/nginx/sites-disponible/default. Copiémoslo y creemos nuestra propia versión del archivo.
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/laravel
Editemos 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. Deberá cambiar la ubicación raíz, que sería /var/www/html/laravel/public en nuestro caso. También debe cambiar la variable server_name por el nombre de dominio que usaría o por la dirección IP de su servidor.
Edite el archivo para que tenga el siguiente aspecto
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; } }
Guarde el archivo después de editarlo. Ahora necesitamos habilitar este archivo de configuración. Hasta ahora solo está activo el perfil predeterminado. Para hacerlo, debemos 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 el PHP-FPM.
Configurar PHP-FPM
Este paso es simple y requiere que cambiemos una variable en el archivo de configuración de PHP. Hora de abrir php.ini
sudo nano /etc/php5/fpm/php.ini
Encuentra el siguiente texto en él
;cgi.fix_pathinfo=1
Descomente la variable eliminando el; desde el frente y cambie 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 no se encuentra el original, lo cual es importante desde el punto de vista de la seguridad.
Por último, también debemos habilitar la extensión mcrypt que instalamos anteriormente.
sudo php5enmod mcrypt
Eso es todo. Ahora simplemente reinicie 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 marcos y bibliotecas de PHP a través de un solo comando. Se encarga de todos los demás paquetes y dependencias que habría tenido que instalar por separado para instalar un marco si sigue la ruta manual. Puede ahorrar muchas veces y molestias. Estaríamos instalando Laravel usando Composer.
Descargar Compositor. Primero asegúrese de estar en su directorio de inicio.
curl -sS https://getcomposer.org/installer | php
Esto descarga el archivo composer.phar en su directorio de inicio. Ahora, si lo desea, puede ejecutarlo desde aquí usando algo como php composer.phar [comando] pero dado que preferiríamos ejecutar el compositor globalmente, debemos cambiarlo a una ubicación más apropiada para que podamos ejecutarlo fácilmente.
sudo mv composer.phar /usr/local/bin/composer
Ahora puede ejecutarlo directamente simplemente llamando al compositor 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 su servidor.
Antes de terminar el tutorial, debemos otorgar los 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 inicie http://servername o http://serverip en su navegador. Debería ver la siguiente pantalla, si tiene éxito.