Cómo instalar Laravel PHP Framework con Nginx en Ubuntu 20.04


Laravel es el framework PHP de código abierto, gratuito y más popular del mundo, conocido por su sintaxis expresiva y elegante. Laravel es accesible, potente y ofrece algunas de las mejores herramientas de desarrollo web necesarias para aplicaciones grandes, robustas y modernas.

En este artículo, aprenderá cómo instalar Laravel PHP Framework en el servidor Ubuntu 20.04 que se ejecuta en el servidor web Nginx.

Paso 1: Instalación de los módulos PHP necesarios

Después de configurar la pila LEMP en su servidor Ubuntu 20.04 como se describe en la guía en el enlace anterior, debe instalar extensiones PHP adicionales requeridas por Laravel de la siguiente manera:

$ sudo apt update
$ sudo apt php-common php-json php-mbstring php-zip php-xml php-tokenizer

Paso 2: crear una base de datos para Laravel

A continuación, debe crear una base de datos MySQL para su aplicación Laravel. Entonces, inicie sesión en su shell mysql y cree la base de datos de la siguiente manera.

$ sudo mysql
MariaDB [(none)]> CREATE DATABASE laraveldb;
MariaDB [(none)]> GRANT ALL ON laraveldb.* to 'webmaster'@'localhost' IDENTIFIED BY 'tecmint';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

Paso 3: Instalar Composer en Ubuntu 20.04

Laravel utiliza el compositor (un administrador de dependencias para PHP) para administrar sus dependencias. Por lo tanto, antes de usar Laravel, asegúrese de tener Composer instalado en su sistema como se muestra.

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
$ sudo chmod +x /usr/local/bin/composer

Paso 4: Instalar Laravel en Ubuntu 20.04

Después de instalar el compositor, utilícelo para instalar los archivos de Laravel. Vaya a su directorio /var/www/html donde se almacenan los archivos web, luego instale Laravel usando el compositor como se muestra. Recuerde reemplazar example.com con el nombre del directorio donde se almacenarán los archivos de Laravel.

$ cd /var/www/html
$ composer create-project --prefer-dist laravel/laravel example.com

Paso 5: Configurar Laravel en Ubuntu 20.04

Para enumerar el contenido de la nueva instalación de Laravel, ejecute el siguiente comando ls. Notará que se ha creado automáticamente un archivo .env , que en el pasado, tendría que crearse manualmente.

$ ls -la /var/www/html/example.com/

A continuación, configure los permisos adecuados en el directorio de Laravel de la siguiente manera.

$ sudo chown -R :www-data /var/www/html/example.com/storage/
$ sudo chown -R :www-data /var/www/html/example.com/bootstrap/cache/
$ sudo chmod -R 0777 /var/www/html/example.com/storage/
$ sudo chmod -R 0775 /var/www/html/example.com/bootstrap/cache/

A continuación, Laravel utiliza una clave de aplicación para proteger las sesiones de los usuarios y otros datos cifrados. El .env predeterminado contiene una clave de aplicación predeterminada, pero necesita generar una nueva para su implementación de laravel por motivos de seguridad.

$ sudo php artisan key:generate

La clave generada se agregará al archivo .env como el valor de APP_KEY . Puede ver la clave adjunta mediante el comando grep.

$ grep -i APP_Key /var/www/html/example.com/.env

También necesita configurar los detalles de conexión de la base de datos de Laravel en .env como se muestra en la siguiente captura de pantalla.

$ sudo nano /var/www/html/example.com/.env

Paso 6: Configuración de NGINX para servir la aplicación Laravel

Para que NGINX sirva a su nueva aplicación, debe crear un bloque de servidor dentro de la configuración de NGINX, en el directorio /etc/nginx/sites-available/.

$ sudo nano /etc/nginx/sites-available/example.com.conf

En la siguiente configuración, actualice la directiva raíz al directorio público de la aplicación Laravel y asegúrese de reemplazar www.example.com con el nombre de dominio de su sitio web como se muestra.

Además, configure la directiva fastcgi_pass debe apuntar al medio en el que PHP-FPM está escuchando las solicitudes (por ejemplo, fastcgi_pass unix: /run/php/php7.4-fpm.sock ):

server{
        server_name www.example.com;
        root        /var/www/html/example.com/public;
        index       index.php;

        charset utf-8;
        gzip on;
        gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

Guarde el archivo y luego habilite la configuración del sitio de Laravel creando un enlace desde /etc/nginx/sites-available/example.com.conf al /etc/nginx/sites-enabled/ directorio. Además, elimine la configuración predeterminada del bloque del servidor.

$ sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
$ sudo rm /etc/nginx/sites-enabled/default

A continuación, compruebe si la sintaxis de configuración de NGINX es correcta ejecutando el siguiente comando antes de reiniciar el servicio.

$ sudo nginx -t
$ sudo systemctl restart nginx

Paso 7: Acceder a la aplicación Laravel desde un navegador web

En esta etapa, debe probar si su implementación de Laravel está funcionando bien y si se puede acceder a ella desde un navegador. Para usar el dominio ficticio, example.com , usemos el archivo /etc/hosts en su computadora local para crear DNS local.

$ echo “192.168.56.11 example.com” | sudo tee -a/etc/hosts

Ahora abra un navegador web en la computadora local y use la siguiente dirección para navegar.

http://www.example.com/

Ahora que tiene Laravel instalado, puede comenzar a construir su aplicación web o sitio. Para obtener más información, consulte la documentación de Laravel.