È arrivato il momento di pubblicare online la tua applicazione Laravel! Che si tratti del tuo sito personale o di un progetto web sviluppato per un amico, un conoscente o un familiare, non sempre c’è bisogno di soluzioni complesse e costose come VPS o servizi cloud completamente gestiti.
In questa guida pratica ti accompagnerò, passo dopo passo, nel processo di pubblicazione del tuo progetto Laravel su provider che offrono piani di hosting condiviso economici gestiti tramite cPanel. Una soluzione ideale per chi cerca un approccio semplice ed efficace al web hosting.
Provider e Hosting: Cosa sono e come sceglierli
Mi piacerebbe tanto parlarvi di un fantomatico provider a costo zero, ma purtroppo non esistono spazi web affidabili e soprattutto gratuiti.
La soluzione definitiva per la pubblicazione online del nostro progetto Laravel è quella di acquistare un servizio di hosting (Spazio Web) presso un Provider (Fornitore di Servizi).
Questi fornitori di servizi offrono uno spazio web su server potenti e accessibili da chiunque in tutto il mondo. In base alle necessita e alla portata del progetto ci sono varie modalità e range di pagamento.
Tipologia di Hosting
Come spiegato poco sopra, esistono diversi tipi di Hosting:
- Hosting Condiviso
- VPS
- Hosting Dedicato
- Cloud Hosting
In questa guida vedremo solamente la categoria degli Hosting Condivisi.
È sempre una buona idea leggere recensioni, confrontare le caratteristiche tecniche e, se possibile, testare il servizio con un periodo di prova prima di impegnarsi a lungo termine.
Tuttavia, è sempre consigliabile fare una ricerca approfondita e confrontare diverse opzioni prima di prendere una decisione.
Scelta del Provider
Per effettuare il deploy corretto di un progetto Laravel, avremo bisogno di un provider in grado di offrirci uno spazio web con le seguenti caratteristiche essenziali ed obbligatorie:
- Server in Europa: Per rispettare la direttiva GDPR e garantire una migliore latenza per gli utenti europei;
- Dominio: Possibilità di registrare un nuovo dominio o trasferire uno esistente;
- Certificato SSL: Per garantire connessioni sicure e migliorare il posizionamento SEO;
- Memoria e spazio di archiviazione adeguati: Per gestire efficacemente le risorse del progetto Laravel;
- Database MySQL o MariaDB: Compatibili con Laravel e ottimizzati per le prestazioni;
- Accesso SSH: Per una gestione avanzata del server e l’utilizzo di strumenti come Git e Composer;
- Processi Cron: Per eseguire task pianificati e automatizzare operazioni di manutenzione;
-
PHP configurabile:
- Supporto a FastCGI per migliori prestazioni
- Accesso al php.ini per personalizzazioni avanzate
- Possibilità di aggiungere/rimuovere estensioni PHP
- Opzione di aggiornamento manuale di PHP
Ed eventualmente queste opzioni:
- Supporto per Node.js e NPM: Utile per la gestione di asset frontend e l’utilizzo di strumenti come Vite;
- Backup automatici: Per proteggere i dati del progetto da perdite accidentali;
- Redis: Per gestire al meglio queue, sessioni e cache.
Ricordate che la scelta del provider dovrebbe basarsi non solo sul prezzo, ma anche sulla qualità del servizio, sulla scalabilità e sulle specifiche esigenze del vostro progetto Laravel.
Fate anche molta attenzione anche ai valori chiamati SLA(Service Level Agreement) o UPTIME: Visto che in un anno ci sono 8.760 ore:
- Un uptime del 99.99% significa meno di 60 minuti di downtime l’anno.
- Un uptime del 99.00%, invece, sono circa 88 ore l’anno di disservizi!
Deploy di Laravel su Hosting Condiviso: Operazioni Preliminari
Essendo un hosting condiviso (che per definzione sono più economici a differenza dei servizi cloud o VPS) non avremo proprio tutto tutto a disposizione. Per ovviare a queste mancanze prepareremo la repository sul nostro computer locale cosi da ottimizzare le operazioni da fare sul server remoto.
Configurazione File .htaccess
💡 Pro Tip: Il file .htaccess è cruciale per il corretto funzionamento di Laravel su Apache. Non saltare questo passaggio!
Per reindirizzare correttamente tutte le richieste a public/index.php, crea un file .htaccess nella root del progetto:
<IfModule mod_rewrite.c>
RewriteEngine On
# Change Root Directory ...
RewriteRule ^$ public/index.php [L]
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Ottimizzazione Assets per Production
🚀 Performance Tip: Compilare gli assets prima del deploy riduce il carico sul server.
- Rimuovi
public/build
dal .gitignore - Esegui
npm run build
- Commita i file generati
Pusha tutto sulla repository
Una volte effettuate queste operazioni, puoi pushare tutto sulla repository in remoto sul servizio di versionamento che preferisci (Github, Bitbucket, GitLab, ecc..)