PHP: configurazione iniziale di Laravel

Short link

Laravel necessita di una preparazione e configurazione preliminare dell'ambiente di sviluppo prima di affrontare la scrittura del codice vero e proprio.

Laravel viene installato come un modulo di Composer, quindi il primo passo da effettuare è quello di installare Composer seguendo la procedura illustrata sul sito principale.

Come riportato nella documentazione ufficiale, prima di installare Laravel occorre verificare che i requisiti del server siano completamente soddisfatti.

Composer viene installato nella directory in cui si eseguono i comandi da shell illustrati sopra. Volendo è possibile spostare il file principale nella directory /usr/local/bin in ambiente Linux in modo da avere l'eseguibile disponibile per ogni utente del sistema.

A questo punto, sempre dalla shell, si può installare il modulo CLI di Laravel.

composer global require laravel/installer

La procedura in ambiente Linux crea la directory $HOME/.config/composer/vendor/bin o $HOME/.composer/vendor/bin dove risiede il modulo CLI chiamato laravel. Volendo a questo punto si può modificare la variabile $PATH Bash nel file di configurazione della shell corrente in modo da avere la directory bin nel percorso di esecuzione.

Un progetto Laravel ora può essere creato semplicemente digitando:

laravel new project

Questo comando creerà la directory project all'interno della directory corrente. Questa directory conterrà tutti i file di un'installazione base di Laravel.

Laravel segue l'approccio usato in passato da Zend Framework ponendo tutti i file e le directory del core dell'applicazione fuori dalla document root. In un'installazione Laravel, la document root è la directory public, che contiene solo il file index.php, il file robots.txt, il file .htaccess e le risorse statiche (file CSS, JavaScript e immagini).

A questo punto occorre configurare il web server (Apache o nginx) affinché abbia la document root nella directory public. In ambiente Linux il web server in uso viene eseguito sotto l'utenza www-data. Ciò significa che per impostazione predefinita anche PHP viene eseguito sotto tale utenza.

Questo si rivela essere un problema per Laravel se l'installazione risiede sotto una directory utente e non sotto la predefinita /var/www. Infatti in questo caso PHP non ha permessi di scrittura su una directory fondamentale per il corretto funzionamento di Laravel, ossia la directory storage dove Laravel gestisce il suo sistema di caching e logging.

La soluzione consiste nell'eseguire PHP sotto un'utenza specifica, ossia quella relativa alla directory in cui risiede l'installazione di Laravel. In Apache ciò può essere ottenuto con i moduli FastCGI di PHP e SuExec di Apache, mentre per nginx la scelta obbligata è PHP-FPM.

Se avete sviluppato prima in locale, dovete prestare una speciale attenzione al file di configurazione principale .env che si trova nella directory principale del vostro progetto Laravel. Essendo un dot-file, può essere ignorato dai client FTP e ciò causerà un errore 500 e un white screen of death in Laravel.

Un altro aspetto da tenere presente durante l'upload dei file sul server, è che Laravel all'interno della sua struttura di file e directory fa uso di link simbolici. Alcuni server FTP possono non supportare la creazione di tali link e ciò causerà un errore nell'upload. In questo caso potete effettuare il trasferimento dei file comprimendo la directory del progetto e usando il comando scp da shell.

Conclusione

A differenza di altri framework PHP, l'installazione di Laravel richiede un'attenzione particolare alla fase di configurazione iniziale in modo da evitare problemi nell'esecuzione.

L'autore

Gabriele Romanato, sviluppatore web full stack specializzato in siti, applicativi web ed e-commerce con Node.js e PHP.