Laravel è un potente framework PHP, Inertia.js è una libreria JavaScript dinamica. Insieme sono perfetti per ottimizzare lo sviluppo delle app, Laravel nel semplificare le attività lato server, Inertia.js per le interazioni lato client. L’abbinamento di Laravel e Inertia.js permette di generare un flusso di dati fluido e aggiornamenti in tempo reale e di creare rapidamente applicazioni web reattive.

Il deploy di un’applicazione Laravel-Inertia tramite il servizio di hosting di applicazioni di Kinsta richiede pochi passaggi:

  1. Configurazione del database utilizzando il servizio di Hosting di database di Kinsta.
  2. Hosting dell’applicazione, configurazione dei buildpack per Node.js e PHP e integrazione del database.
  3. Configurazione di Node.js per l’installazione di Inertia e delle dipendenze PHP per l’ambiente Inertia.

Questo tutorial mostrerà i passaggi nel dettaglio.

I requisiti di installazione

Prima di procedere, assicuriamoci di avere i seguenti prerequisiti:

In questo articolo, distribuiremo un’applicazione blog che serve un elenco di articoli e permette al lettore di visualizzare un post specifico. L’applicazione è stata realizzata con Laravel, Tailwind CSS e Vue.js.

L’ambiente di runtime JavaScript Node.js gestisce il rendering lato server. Node.js coordina la comunicazione tra i componenti dell’applicazione frontend Inertia.js e il backend Laravel per gli aggiornamenti dinamici del frontend dal lato server.

L'applicazione Kinsta Blog con un titolo e un elenco di articoli
L’applicazione Kinsta Blog con un titolo e un elenco di articoli.

Per maggiori informazioni sulla creazione di questa applicazione, si può fare riferimento al nostro articolo Come utilizzare Inertia.js nei progetti Laravel. È possibile anche scaricare il codice sorgente completo dell’applicazione.

Come distribuire l’applicazione su Kinsta

Iniziamo con la configurazione di un database per l’applicazione sull’Hosting di Database di Kinsta. Ecco i passaggi da seguire:

  1. Accedere alla dashboard MyKinsta. Se non abbiamo ancora un account, creiamolo.
  2. Accedere alla pagina Database dalla barra laterale di sinistra e poi fare clic su Aggiungi database.
  3. Nella sezione Dati di base, inseriamo i dati del database. Questi includono il tipo di database (MySQL) e la versione (8.0). Facciamo quindi clic su Continua.
  4. La sezione Riepilogo mostra i dettagli della fattura del servizio e i dati di fatturazione. Confermiamo e clicchiamo su Crea database.

Come configurare l’ambiente Laravel

Quelli che seguono sono i passaggi necessari per configurare l’ambiente Laravel sull’Hosting di Applicazioni di Kinsta:

  1. Facciamo clic su Applicazioni nella barra laterale sinistra di MyKinsta, quindi su Aggiungi applicazione.
  2. Scegliamo il repository dell’applicazione, abilitiamo la distribuzione automatica al commit, inseriamo il nome dell’applicazione e selezioniamo la posizione del data center. L’applicazione e il database devono trovarsi nella stessa regione.
  3. Successivamente, inseriamo le variabili d’ambiente. Digitiamo APP_KEY nel campo Chiave 1. Possiamo utilizzare il generatore online di Laravel per creare una chiave per il Valore 1. Facciamo clic su Continua.
  4. Nella scheda Ambiente di compilazione, selezioniamo Usa i Buildpack per impostare l’immagine del container. Questa opzione permette di scegliere i buildpack in un secondo momento.
  5. Nella scheda Risorse, specifichiamo il comando di avvio dell’applicazione. Trattandosi di un’applicazione Laravel, utilizzeremo il seguente comando:
    php artisan serve --host 0.0.0.0 --port 8080
  6. La scheda Riepilogo mostra la fattura con il pod e il metodo di pagamento. Confermiamo tutte le informazioni e facciamo clic su Crea applicazione.

La distribuzione dell’applicazione viene avviata, ma non riesce perché bisogna ancora aggiungere i buildpack necessari per la creazione dell’applicazione Laravel-Inertia.

Aggiungere i Buildpack

  1. Nel menu a sinistra dell’applicazione, facciamo clic su Impostazioni.
  2. Quindi facciamo clic sulla scheda build e su Add buildpack per aggiungere i buildpack Node.js e PHP . Aggiungiamo i buildpack che contengono il linguaggio principale per ultimi all’elenco dei buildpack per essere sicuri che il buildpack specifico del linguaggio abbia la precedenza sulla configurazione generale dell’ambiente.
  3. Facciamo clic su Aggiungi buildpack e aggiungiamo i buildpack Node.js e PHP. Verifichiamo che il buildpack del linguaggio principale (PHP) sia aggiunto per ultimo.

    Aggiungere i buildpack per l'applicazione Laravel-Inertia
    Aggiungere i buildpack per l’applicazione Laravel-Inertia.

  4. Facciamo clic su Distribuzione nella barra laterale e poi su Distribuisci nuovamente.

Configurazione dell’ambiente Node.js

  1. L’applicazione Laravel-Inertia ha bisogno dello script Vite per aggiornare la pagina senza ricaricarla. Quindi, nel menu a sinistra dell’account Kinsta, facciamo clic su Processi.
  2. Nella sezione Processi di Runtime, facciamo clic su Crea processo. Scegliamo il Background worker come Tipo di processo e aggiungiamo i seguenti comandi:
    npm install && npm start
    Create process for the application
    Creazione di comandi di avvio Node.js per l’applicazione Laravel-Inertia.

    Assegnamo al processo il nome che desideriamo per identificarlo all’interno di Kinsta, ad esempio “Node”. Selezioniamo anche le dimensioni del Pod e il numero di istanze in base alle esigenze e al budget dell’applicazione. Questo tutorial utilizza 2 CPU con 8 GB di RAM.

  3. Facciamo clic su Continua per creare il processo. Questa azione attiva una riallocazione.

Configurazione dell’ambiente del database

  1. Nella pagina delle Impostazioni , nella scheda Connessioni, è presente la voce Applicazioni consentite. Facciamo clic su Aggiungi connessione per aggiungere il database come connessione.
  2. Selezioniamo il database. Sotto, selezioniamo Aggiungi variabili d’ambiente per accedere al database. Questa azione popola automaticamente tutte le variabili d’ambiente del database.
  3. Modifichiamo le chiavi delle variabili in modo che corrispondano al file database.php della’applicazione, che si trova nella cartella config della root dell’applicazione.
  4. Modifichiamo le chiavi Laravel DB_DATABASE, DB_USERNAME e DATABASE_URL, come nella seguente schermata:

    A list of six keys and their redacted values
    Variabili d’ambiente e chiavi.

  5. Aggiungiamo un’altra variabile d’ambiente chiamata APP_URL. Il suo valore è l’URL di distribuzione dell’applicazione. Queste informazioni sono accessibili alla voce Domini nel menu laterale.

Migrazione del database

  1. Nel menu laterale, facciamo clic su Processi.
  2. Nella sezione Processi di runtime, clicchiamo su Crea processo.
  3. Assegniamo al processo il nome “Migrazione”. Selezioniamo il tipo Background worker. Incolliamo il seguente comando nel campo Comando di avvio:
    php artisan migrate:fresh --seed --force

    Questo comando migra la tabella Articles e aggiunge dieci articoli all’applicazione. I processi dovrebbero essere simili a quelli presenti nella seguente schermata, con i processi Node, Migration e Web e i relativi dati.

    Un elenco dei processi di runtime che include il processo, il tipo, le istanze, la dimensione del pod e le azioni di modifica o eliminazione per i processi Node, Migrazione e Web.
    Processi di runtime durante la distribuzione dell’applicazione Laravel-Inertia.

  4. Nel menu laterale, selezioniamo Distribuzioni. Facciamo clic su Ultima distribuzione. Dovremmo vedere una pagina come la seguente, con un titolo e un elenco di articoli con testo e immagini segnaposto.

    La pagina iniziale dell'applicazione con il titolo Kinsta Blog e un elenco di articoli con testo segnaposto
    L’applicazione Laravel-Inertia è stata distribuita con successo su Kinsta.

Come monitorare e mantenere l’applicazione dopo il deploy

Dopo aver distribuito l’applicazione, si potrebbero riscontrare dei problemi a causa dell’aumento delle richieste. L’analisi delle applicazioni di Kinsta permette di monitorare questi cambiamenti e mantenere l’applicazione in buona salute.

L’analisi mostra le risorse, le prestazioni e le richieste HTTP per dare un’idea del funzionamento dell’applicazione. È possibile verificare quando l’applicazione ha bisogno di più risorse nelle schede di monitoraggio delle prestazioni, per poi aumentare o diminuire le risorse in base alle necessità.

I registri di runtime permettono di risolvere rapidamente i problemi. È facile trovare l’origine del problema nelle voci di registro, e questo rende più semplice la manutenzione dell’applicazione.

Come risolvere i problemi più comuni di distribuzione

Si potrebbero riscontrare alcuni problemi durante la distribuzione di un’applicazione Laravel-Inertia su Kinsta. Vediamo quali sono e come risolvere.

Innanzitutto, Kinsta aggiunge un carattere speciale alla password generata quando si crea un database. Questo può causare errori di rollback quando si collega il database all’applicazione Laravel-Inertia. Per risolvere questo problema, è sufficiente utilizzare la propria password invece di affidarsi alle password generate.

I fallimenti del deployment con auto-commit sono un altro problema. L’installazione potrebbe fallire se si specifica un comando di avvio non corretto. Per risolvere, bisogna controllare se i processi presentano errori di battitura o se sono assegnati in modo errato a un tipo di processo.

Riepilogo

Ora sappiamo come distribuire un’applicazione Laravel/Inertia su Kinsta. Questo comporta l’impostazione dei Buildpack e dei comandi di avvio per configurare l’applicazione, la creazione di un database e quindi la connessione e la migrazione del database in modo da servire i dati all’applicazione.

La combinazione di Laravel e Inertia permette di collegare un’applicazione con il database senza dover configurare manualmente un’API, risparmiando tempo ed energia che possono essere impiegati per aggiungere all’applicazione nuove ed entusiasmanti funzionalità.

Kinsta offre l’hosting dell’applicazione e del suo database. È possibile utilizzare anche connessioni esterne del database per connettersi a un’applicazione in esecuzione al di fuori di Kinsta. 37 data center permettono di offrire servizi dalla località più vicina agli utenti dell’applicazione, riducendo i ritardi e offrendo un’infrastruttura di distribuzione affidabile e sicura.

Distribuisci la tua applicazione web dinamica o il tuo database su Kinsta con quello che hai imparato in questo tutorial. Inizia subito la tua distribuzione con Kinsta.