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;

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

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

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:

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:
-tindica il tipo di chiave (algoritmo Ed25519)-Cindica 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
~/.ssge creare un fileconfig. - inserire nel file
configil 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