Búsqueda de sitios web

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


Laravel es el framework PHP más popular, gratuito y de código abierto 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, sólidas 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.

Requisitos previos

  • Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04

Paso 1: instalar 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 del enlace anterior, debe instalar las 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 composer (un administrador de dependencias para PHP) para gestionar 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 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, establezca los permisos apropiados en el directorio 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 usuario 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 usando el comando grep.

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

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

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

Paso 6: Configurar NGINX para servir la aplicación Laravel

Para que NGINX proporcione su nueva aplicación, debe crear un bloque de servidor para ella 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 configuración siguiente, 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, establezca que la directiva fastcgi_pass apunte 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 Laravel creando un enlace desde /etc/nginx/sites-available/example.com.conf al /etc/nginx/sites-enabled/ Directorio . Además, elimine la configuración de bloqueo del servidor predeterminada.

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

A continuación, verifique 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.

Ejecute los siguientes comandos para obtener la dirección IP del servidor Laravel y agréguela al archivo /etc/hosts (reemplace el valor según su configuración).
$anuncio ip
$echo “192.168.56.11 ejemplo.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 crear su aplicación o sitio web. Para obtener más información, consulte la documentación de Laravel.