Installare un nuovo progetto Laravel in ambiente di sviluppo e test

Creare il virtual host per il progetto Aprire il file di configurazione /opt/lampp/etc/extra/httpd-vhosts.com e aggiungere in coda le seguenti righe): Riavviare il web server. Assegnare al dominio l’indirizzo IP del web server di sviluppo Per visualizzare l’indirizzo IP del server, digitare il comando ifconfig da Terminale e ricercare nell’output il valore di inet. Aprire in […]
immagine dell'autore dell'articolo

Scritto da: Alberto

Una vita nell'informatica, per lavoro e per passione.
agsdix-far fa-calendar-alt
Data pubblicazione: 22 Dicembre 2025
Categorie: Laravel
agsdix-far fa-comments

Creare il virtual host per il progetto

Aprire il file di configurazione /opt/lampp/etc/extra/httpd-vhosts.com e aggiungere in coda le seguenti righe):


#DOMINIO.IT
<VirtualHost *:80>
    ServerAdmin UTENTE@EMAIL.IT
    DocumentRoot "/opt/lampp/htdocs/DOMINIO.IT/public"
    ServerName DOMINIO.IT
    ErrorLog "logs/DOMINIO.IT-error_log"
    CustomLog "logs/DOMINIO.IT-access_log" common
</VirtualHost>

Riavviare il web server.

Assegnare al dominio l’indirizzo IP del web server di sviluppo

Per visualizzare l’indirizzo IP del server, digitare il comando ifconfig da Terminale e ricercare nell’output il valore di inet.

ifconfig

Aprire in modifica il file /etc/hosts ed inserire la seguente riga (dove 192.168.1.9 rappresenta l’indirizzo IP del web server):

192.168.1.9 DOMINIO.IT

Creare il progetto

Creare il progetto con il seguente comando:

cd /opt/lampp/htdocs/
composer create-project laravel/laravel DOMINIO.IT
sudo chown -R daemon:sviluppo DOMINIO.IT

Per conoscere la versione di Laravel installata (ovveero la più recente), usare il comando:

php artisan --version

Per controllare che tutto funzioni correttamente, aprire un browser e richiamare il sito DOMINIO.IT, se tutto funziona correttamente, deve apprarire la pagina predefinita di Laravel.

Shortcut per accedere alla directory di progetto

Poiché ci si dovrà spesso posizionare nelal directory del progetto, è posibile creare un comando ad-hoc come scorciatoia. Aprire il file /Home7.bashrc ed aggiungere la seguente istruzione:

alias cdXX='cd /opt/lampp/htdocs/DOMINIO.IT'

Perché l’alias diventi operativo, inviare il seguente comando da Terminal:

source ~/.bashrc

Installare la localizzazione italiana

Se usi Laravel 9 o superiore, le traduzioni non vengono distribuite nel core. Devi installare un pacchetto esterno (ad esempio laravel-lang/lang) che contiene tutte le traduzioni ufficiali.

Installare le traduzioni

Dalla directory root del tuo progetto, digita:

composer require laravel-lang/lang --dev

Questo pacchetto gestisce i file di traduzione.

Pubblicare i file

Dopo l’installazione, puoi pubblicare i file della lingua di default di Laravel (en):

php artisan lang:publish

Per creare la cartella resources/lang/it/ con dentro validation.php e gli altri file tradotti, usa il comando:

php artisan lang:add it

Impostare la lingua

Nel file .env modificare il valore della variabile APP_LOCALE:

APP_LOCALE=it

L’IA suggerisce di assicurarsi che in config/app.php ci sia:

'locale' => 'it',
'fallback_locale' => 'en',

Installare il software di autenticazione

La soluzione migliore per un progetto Laravel moderno è usare uno degli starter kit ufficiali (Laravel Breeze o Laravel Jetstream) oppure Laravel Fortify, che forniscono un sistema completo di autenticazione e autorizzazioni già pronto.

Di seguito le operazioni per installare e far generare il software di autenticazione dal pachetto Laravel/Breeze.

composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run dev
php artisan migrate

Descrizione dei comandi

Il comando composer require laravel/breeze --dev installa il pacchetto Laravel Breeze come dipendenza di sviluppo nel tuo progetto Laravel.

Il comando php artisan breeze:install serve a generare lo scaffolding di autenticazione utilizzando Breeze. Durante l’installazione verranno poste all’utente alcune domande: le mie scelte sono: Blade with Alpine, no dark mode support, Pest.
In dettaglio, il comando:

  • Crea le rotte per login, registrazione, reset password, verifica email, ecc.
  • Genera i controller necessari per gestire l’autenticazione.
  • Installa le viste Blade già pronte (form di login, registrazione, recupero password, ecc.).
  • Configura Tailwind CSS e Alpine.js per lo stile e l’interattività di base.
  • Aggiorna i file di configurazione per integrare il sistema di autenticazione.

Il comando npm install legge il file package.json del progetto, scarica e installa tutte le dipendenze JavaScript (Alpine.js nello specifico).

Il comando npm run dev esegue lo script dev definito in package.json. Avvia Vite (il bundler) in modalità sviluppo, compila i file CSS e JS (Alpine.js nello specifico) e li rende disponibili al browser.

Il comando php artisan migrate crea le tabelle necessarie (users, password_resets, ecc.).

Installare librerie aggiuntive tramite NPM

Per installare le librerie aggiuntive tramite NPM, posizionarsi nella directory root del progetto.

Bootstrap

Per installare bootstrap, utilizzare il comando:

cd /opt/lampp/htdocs/DOMINIO.IT
npm install bootstrap @popperjs/core
npm install sass

Creare un nuovo progetto NetBeans

Avviare NetBens e scegliere le voci di menu FIle > New Project. Verrà visualizzata la prima schermata del wizard;

NetBeans - nuovo progetto - finestra 01 - scelta del tipo progetto
NetBeans – nuovo progetto – finestra 01 – scelta del tipo progetto

Scegliere la Categoria PHP e il Tipo di progetto "PHP application with Existing Sources", quindi cliccare su Next.

NetBeans - nuovo progetto - finestra 02 - scelta del nome e della posizione
NetBeans – nuovo progetto – finestra 02 – scelta del nome e della posizione

Impostare i valori per la directory che contiene il progetto, il nome del progetto e la verisone PHP, quindi cliccare su Next.

NetBeans - nuovo progetto - finestra 03 - Configurazione esecuzione
NetBeans – nuovo progetto – finestra 03 – Configurazione esecuzione

Impostare i valori per Run As e Project URL, quindi cliccare su Finish. Il programma apre la finestra sul nuovo progetto NetBeans.

Nella finestra Projects, cliccare con il destro sul nome progetto e poi selezionare la voce Properties > Sources:

NetBeans - nuovo progetto - finestra 04 - configurazione sorgenti
NetBeans – nuovo progetto – finestra 04 – configurazione sorgenti

Impostare il valore di Web Root = public e il valore di PHP Version (in base alla versione di Laravel installata).

Inizializzare il repository di GIT

Dopo aver aperto il progetto in NetBeans, eseguire il comando Team > Git > Initialize Repository (equivale a git init).
Aprire il Repository Browser con il comando Team > Repository > Repository Browser.

Configurare la connessione al repository origin su GitHub

Su GitHub:

  • Creare un UTENTE
  • Accedere con UTENTE
  • Creare il repository UTENTE/DOMINIO.IT

Da Terminal locale, generare una chiave SSH con il comando:

cd .ssh
ssh-keygen -t ed25519 -C "UTENTE@github.com"

dove:

  • -t indica il tipo di chiave (algoritmo Ed25519)
  • -C indica il commento

Rispondere con Invio (conferma il file di default) alla richiesta:

Enter file in which to save the key (/home/UTENTE/.ssh/id_ed25519): 

Fornire e poi confermare una passphrase alle richieste:

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

Avviare l’agente SSH (serve per caricare automaticamente la chiave privata)

eval "$(ssh-agent -s)"

Poi aggiungi la chiave privata (fornisci la passphrase quando richiesto):

ssh-add ~/.ssh/id_ed25519

Visualizzare la chiave pubblica:

cat ~/.ssh/id_ed25519.pub

Copiare tutto il contenuto (inizia con ssh-ed25519 e finisce con il commento).

Su GitHub:

  • accedere alle impostazioni
  • Selezionare la voce di menu SSH and GPG Keys
  • Cliccare sul bottone New SSH Key
  • Incollare la chiave pubblica

In locale, aprire il terminale di NetBeans con il comando: Windows > IDE Tools > Terminal

Eseguire i seguenti comandi:

cd /opt/lampp/htdocs/DOMINIO.IT
git config --global user.email "alberto.defranceschi62@gmail.com"
git config --global user.name "Alberto De Franceschi"
git config --global --add safe.directory /opt/lampp/htdocs/DOMINIO.IT
git config --global init.defaultBranch main

git remote add origin git@github.com:UTENTE/DOMINIO.IT.git

Si può accedere alla configurazione globale di GIT con il comando Team > Repository > Open Global Configuration, oppure da /home/UTENTE/.gitconfig

Il comando remote add origin inserisce l’informazione nel file /opt/lampp/htdocs/DOMINIO.IT/.git/config.
Si ottiene lo stesso risultato con il comando Team > Remote > Add remote.
Per visualizzare i repository remoti, digitare da terminale git remote -v.

Fare il primo push su origin del branch master

Cliccare sulla root del progetto e creare il primo commit con i comandi

Team > Add (equivale a git add .)
Team > Commit (è possibile inserire un solo commento al commit; equivale a git commit -m "commento").
Team > Remote > Push (apre una finestra interattiva; corrisponde a git push -u origin master)
oppure
Team > Remote Push to Upstream

Configurare la connessione SSH tra GitHub e server di produzione (Register.it)

Per creare una connessione SSH tra GitHub e il server di produzione, non si devono seguire le istruzioni dell’articolo Come configurare una connessione SSH su questo sito, perché in questo caso abbiamo bisogno di una chiave SSH senza passphrase (chiave di deploy).

Sul server di produzione:

cd .ssh
ssh-keygen -t ed25519 -C "deploy-key@github.com"

Rispondere con Invio (conferma il file di default) alla richiesta:

Enter file in which to save the key (/home/UTENTE/.ssh/id_ed25519): 

Rispondere con un duplice invio (nessuna passphrase) alle richieste:

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

Visualizzare la public key:

cat id_ed25519.pub

Copiare negli appunti la public key, a partire da ssh-ed25519… al commento finale

Su GitHub:

  • selezionare il repository
  • selezionare Impostazioni > Deploy Keys > Add Deploy keys
  • Impostare il nome (“Deploy DOMINIO.IT”)
  • Incollare dagli appunti la public key; lasciare senza spunta la casella “Allow write access” e salvare la chiave (fornire la password di accesso a GitHub quando richiesto).

Sul server di produzione:

  • posizionarsi sulla cartella ~/.ssg e creare un file config.
  • inserire nel file config il seguente testo, poi salvare il file
Host github.com
  Hostname ssh.github.com
  Port 443
  User git
  IdentityFile ~/.ssh/id_ed25519
  • testare la connessione con il seguente comando (fornire la passphrase quando richiesto):
ssh -T git@github.com

Avviare l’ambiente di produzione

Clonare il repository Github

  • posizionarsi nella directory di progetto
  • clonare il repository di GitHub (il comando usa il file ~/.ssh/config):
git clone github.com:UTENTE/DOMINIO.IT.git .

il punto finale . → significa “clona dentro questa cartella”.

Installare le dipendenze

Utilizzare il comando composer:

composer install --no-dev --optimize-autoloader

Creare il database di produzione

Da WePanel:

  • accedere al pannello Databases > Database Management
  • Cliccare sul’icona MySQL Wizard, poi su Basic Mode e infine sul bottone Begin
  • Fornire il nome del database (e dell’utente che ne avrà i privilegi) e cliccare sul bottone Following
  • Fornire una password sicura (almeno 8 caratteri, di cui almeno: una minuscola, una maiuscola, un numero e un simbolo) o farla generare in automatico e cliccare sul bottone Following. Il sistema genera il database e l’utente

Impostare il file di configurazione .env

Crea il file .env copiando da .env.example.

cp .env.example .env

Modifica almeno i seguenti valori di .env, compresi quelli della connessione database

APP_NAME=
APP_ENV=production
APP_KEY= (viene generata con il comando php artisan key:generate)
APP_DEBUG=false
APP_URL=
APP_LOCALE=it

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE= (il nome fornito al wizard di MySQL)
DB_USERNAME= (uguale a DB_DATABASE)
DB_PASSWORD= (la password fornita al wizard di MySQL)

Generare la APP_KEY e fare il refresh della configurazione:

php artisan key:generate

php artisan config:clear
php artisan config:cache

Per testare la connessione al database:

php artisan tinker
DB::select('SELECT 1');

Generare le tabelle MySQL

Per generare le tabelle MySQL, eseguire il comando di migrazione:

php artisan migrate --force

Aggiornare la directory public/build

L’incarico di fare npm build viene affidato a Github:

  • imposta le credenziali per eseguire FTP sul server di produzione, scegliendo: Settings → Secrets and variables → Actions → New repository secret
  • Impost ai valori FTP_HOST, FTP_USER, FTP_PASS

E crea:

0 commenti