Com instal·lar Laravel PHP Framework amb Nginx a Ubuntu 20.04


Laravel és el framework PHP més popular, gratuït i de codi obert del món, conegut per la seva sintaxi expressiva i elegant. Laravel és accessible, potent i ofereix algunes de les millors eines de desenvolupament web necessàries per a aplicacions grans, robustes i modernes.

En aquest article, aprendràs a instal·lar el Laravel PHP Framework al servidor Ubuntu 20.04 que s'executa al servidor web Nginx.

  • Com instal·lar LEMP Stack amb PhpMyAdmin a Ubuntu 20.04

Pas 1: instal·lació dels mòduls PHP necessaris

Després de configurar la pila LEMP al vostre servidor Ubuntu 20.04 tal com es descriu a la guia de l'enllaç anterior, heu d'instal·lar extensions PHP addicionals requerides per Laravel de la següent manera:

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

Pas 2: Creació d'una base de dades per a Laravel

A continuació, heu de crear una base de dades MySQL per a la vostra aplicació Laravel. Per tant, inicieu sessió al vostre shell mysql i creeu la base de dades de la següent 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

Pas 3: instal·lació de Composer a Ubuntu 20.04

Laravel utilitza el compositor (un gestor de dependències per a PHP) per gestionar les seves dependències. Per tant, abans d'utilitzar Laravel, assegureu-vos que teniu Composer instal·lat al vostre sistema tal com es mostra.

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

Pas 4: instal·lar Laravel a Ubuntu 20.04

Després d'instal·lar el compositor, utilitzeu-lo per instal·lar els fitxers Laravel. Aneu al vostre directori /var/www/html on s'emmagatzemen els fitxers web i, a continuació, instal·leu Laravel utilitzant el compositor tal com es mostra. Recordeu substituir example.com pel nom del directori on s'emmagatzemaran els fitxers Laravel.

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

Pas 5: Configuració de Laravel a Ubuntu 20.04

Per llistar el contingut de la nova instal·lació de Laravel, executeu la següent comanda ls. Notareu que s'ha creat automàticament un fitxer .env, que en el passat s'hauria de crear manualment.

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

A continuació, configureu els permisos adequats al directori Laravel de la manera següent.

$ 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ó, Laravel utilitza una clau d'aplicació per protegir les sessions d'usuari i altres dades xifrades. El .env predeterminat conté una clau d'aplicació per defecte, però necessiteu generar-ne una de nova per al vostre desplegament de laravel per motius de seguretat.

$ sudo php artisan key:generate

La clau generada s'adjuntarà al fitxer .env com a valor de la APP_KEY. Podeu veure la clau adjunta mitjançant l'ordre grep.

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

També heu de configurar els detalls de connexió de la base de dades de Laravel a .env tal com es mostra a la captura de pantalla següent.

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

Pas 6: Configuració de NGINX per servir l'aplicació Laravel

Perquè NGINX serveixi la vostra nova aplicació, heu de crear-hi un bloc de servidor dins de la configuració de NGINX, al directori /etc/nginx/sites-available/.

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

A la configuració següent, actualitzeu la directiva arrel al directori públic de l'aplicació Laravel i assegureu-vos de substituir www.example.com pel nom de domini del vostre lloc web tal com es mostra.

A més, configureu la directiva fastcgi_pass ha d'apuntar al mitjà que PHP-FPM escolta les sol·licituds (per exemple, 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;
        }
}

Deseu el fitxer i, a continuació, activeu la configuració del lloc de Laravel creant un enllaç des de /etc/nginx/sites-available/example.com.conf a /etc/nginx/sites-enabled/ directori . A més, elimineu la configuració predeterminada del bloc 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ó, comproveu si la sintaxi de configuració de NGINX és correcta executant l'ordre següent abans de reiniciar el servei.

$ sudo nginx -t
$ sudo systemctl restart nginx

Pas 7: Accés a l'aplicació Laravel des d'un navegador web

En aquesta etapa, heu de provar si el vostre desplegament de Laravel funciona bé i si s'hi pot accedir des d'un navegador. Per utilitzar el domini simulat, example.com, utilitzem el fitxer /etc/hosts del vostre ordinador local per crear DNS local.

Executeu les ordres següents per obtenir l'adreça IP del servidor Laravel i afegiu-la al fitxer /etc/hosts (substituïu el valor segons la vostra configuració).
$anunci ip
$echo “192.168.56.11 example.com” | sudo tee -a /etc/hosts

Ara obriu un navegador web a l'ordinador local i utilitzeu l'adreça següent per navegar.

http://www.example.com/

Ara que teniu Laravel instal·lat, podeu començar a crear la vostra aplicació web o lloc. Per obtenir més informació, consulteu la documentació de Laravel.