Ricerca nel sito web

Come installare Laravel PHP Framework con Nginx su Ubuntu 20.04


Laravel è il framework PHP più popolare, gratuito e open source al mondo, noto per la sua sintassi espressiva ed elegante. Laravel è accessibile, potente e offre alcuni dei migliori strumenti di sviluppo web necessari per applicazioni grandi, robuste e moderne.

In questo articolo imparerai come installare Laravel PHP Framework sul server Ubuntu 20.04 in esecuzione sul server web Nginx.

Prerequisiti

  • Come installare lo stack LEMP con PhpMyAdmin in Ubuntu 20.04

Passaggio 1: installazione dei moduli PHP richiesti

Dopo aver configurato lo stack LEMP sul tuo server Ubuntu 20.04 come descritto nella guida nel link sopra, devi installare le estensioni PHP aggiuntive richieste da Laravel come segue:

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

Passaggio 2: creazione di un database per Laravel

Successivamente, devi creare un database MySQL per la tua applicazione Laravel. Quindi, accedi alla tua shell mysql e crea il database come segue.

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

Passaggio 3: installazione di Composer in Ubuntu 20.04

Laravel utilizza il compositore (un gestore delle dipendenze per PHP) per gestire le sue dipendenze. Pertanto, prima di utilizzare Laravel, assicurati di avere Composer installato sul tuo sistema come mostrato.

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

Passaggio 4: installazione di Laravel in Ubuntu 20.04

Dopo aver installato il compositore, utilizzalo per installare i file Laravel. Spostati nella directory /var/www/html dove sono archiviati i file web, quindi installa Laravel utilizzando il compositore come mostrato. Ricordati di sostituire example.com con il nome della directory in cui verranno archiviati i file Laravel.

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

Passaggio 5: configurazione di Laravel in Ubuntu 20.04

Per elencare i contenuti della nuova installazione Laravel, esegui il seguente comando ls. Noterai che è stato creato automaticamente un file .env che in passato avrebbe dovuto essere creato manualmente.

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

Successivamente, imposta le autorizzazioni appropriate sulla directory Laravel come segue.

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/

Successivamente, Laravel utilizza una chiave dell'applicazione per proteggere le sessioni utente e altri dati crittografati. Il .env predefinito contiene una chiave dell'applicazione predefinita ma è necessario generarne una nuova per la distribuzione laravel per motivi di sicurezza.

sudo php artisan key:generate

La chiave generata verrà aggiunta al file .env come valore di APP_KEY. È possibile visualizzare la chiave aggiunta utilizzando il comando grep.

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

È inoltre necessario configurare i dettagli della connessione al database Laravel in .env come mostrato nello screenshot seguente.

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

Passaggio 6: configurazione di NGINX per servire l'applicazione Laravel

Affinché NGINX possa servire la tua nuova applicazione, devi creare un blocco server all'interno della configurazione NGINX, nella directory /etc/nginx/sites-available/.

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

Nella configurazione seguente, aggiorna la direttiva root alla directory pubblica dell'applicazione Laravel e assicurati di sostituire www.example.com con il nome di dominio del tuo sito web come mostrato.

Inoltre, imposta la direttiva fastcgi_pass affinché punti al mezzo su cui PHP-FPM è in ascolto per le richieste (ad esempio 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;
        }
}

Salvare il file e quindi abilitare la configurazione del sito Laravel creando un collegamento da /etc/nginx/sites-available/example.com.conf a /etc/nginx/sites-enabled/ directory . Inoltre, rimuovi la configurazione di blocco del server predefinita.

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

Successivamente, controlla se la sintassi di configurazione di NGINX è corretta eseguendo il comando seguente prima di riavviare il servizio.

sudo nginx -t
sudo systemctl restart nginx

Passaggio 7: accesso all'applicazione Laravel da un browser Web

In questa fase, devi verificare se la tua distribuzione Laravel funziona correttamente e se è possibile accedervi da un browser. Per utilizzare il dominio fittizio, example.com, utilizziamo il file /etc/hosts sul tuo computer locale per creare DNS locale.

Esegui i seguenti comandi per ottenere l'indirizzo IP del server Laravel e aggiungerlo al file /etc/hosts (sostituisci il valore in base alle tue impostazioni).
$ip annuncio
$echo “192.168.56.11 esempio.com” | sudo tee -a /etc/hosts

Ora apri un browser web sul computer locale e utilizza il seguente indirizzo per navigare.

http://www.example.com/

Ora che hai installato Laravel, puoi iniziare a creare la tua applicazione web o il tuo sito. Per ulteriori informazioni, consultare la documentazione di Laravel.