Perché Linux Domina il Mondo dei Server Web
Oltre il 90% dei server web nel mondo gira su Linux. Non è un caso: il sistema operativo open-source offre stabilità, sicurezza e flessibilità che lo rendono la scelta naturale per l’hosting di siti web e applicazioni. Per chi lavora nel mondo del web, conoscere i fondamenti di Linux non è più un’opzione riservata agli specialisti: è una competenza che può fare la differenza nella gestione quotidiana del proprio sito.
Anche se utilizzi un pannello di controllo come cPanel o Plesk per gestire il tuo hosting, capire cosa succede sotto la superficie ti permette di risolvere problemi più velocemente, comunicare in modo più efficace con il supporto tecnico e prendere decisioni più consapevoli sulla tua infrastruttura.
Connettersi al Server: SSH e Terminale
Il primo passo per interagire con un server Linux è stabilire una connessione SSH (Secure Shell). SSH è un protocollo che permette di accedere al terminale del server in modo sicuro e crittografato. Su macOS e Linux il client SSH è integrato nel terminale; su Windows si può utilizzare PuTTY oppure il terminale di Windows 10/11.
La sintassi base per la connessione è:
- ssh utente@indirizzo-server: connessione con password
- ssh -i chiave.pem utente@indirizzo-server: connessione con chiave privata (metodo più sicuro)
- ssh -p 2222 utente@indirizzo-server: connessione su una porta personalizzata
L’utilizzo di chiavi SSH al posto delle password è fortemente consigliato. Le chiavi offrono un livello di sicurezza superiore e eliminano il rischio di attacchi brute force sulla password. Per generare una coppia di chiavi si utilizza il comando ssh-keygen, che crea una chiave pubblica (da caricare sul server) e una chiave privata (da conservare in modo sicuro sul proprio computer).
Navigare il File System: I Comandi Essenziali
Il file system di Linux è organizzato in una struttura ad albero che parte dalla directory radice /. A differenza di Windows, non esistono lettere di unità. Ogni elemento del sistema, dai file di configurazione ai dispositivi hardware, è rappresentato come un file all’interno di questa struttura.
I comandi fondamentali per la navigazione sono:
- pwd: mostra la directory corrente (dove ti trovi)
- ls: elenca i file e le cartelle nella directory corrente. Con il flag -la mostra anche i file nascosti, i permessi e le dimensioni
- cd: cambia directory. cd .. sale di un livello, cd ~ torna alla home
- mkdir: crea una nuova directory. Con -p crea anche le directory intermedie mancanti
- cp: copia file o directory. Con -r copia ricorsivamente le directory e il loro contenuto
- mv: sposta o rinomina file e directory
- rm: rimuove file. Con -r rimuove directory e contenuti. Attenzione: non esiste un cestino
Visualizzare e Modificare File
Per visualizzare il contenuto di un file si possono utilizzare diversi comandi: cat stampa l’intero file a schermo, less permette di scorrere file lunghi pagina per pagina, head e tail mostrano rispettivamente le prime e le ultime righe. Per modificare file di testo direttamente dal terminale, nano è l’editor più semplice e immediato, mentre vim offre funzionalità avanzate ma richiede una curva di apprendimento più ripida.
Permessi dei File: Chi Può Fare Cosa
Il sistema dei permessi di Linux è uno degli aspetti più importanti per la sicurezza di un server web. Ogni file e directory ha tre livelli di permessi: lettura (r), scrittura (w) ed esecuzione (x), assegnati a tre categorie: proprietario, gruppo e tutti gli altri.
I permessi si visualizzano con ls -l e appaiono come una stringa di 10 caratteri, ad esempio -rwxr-xr–. I comandi per gestire i permessi sono:
- chmod: modifica i permessi. Ad esempio, chmod 755 file.php assegna lettura/scrittura/esecuzione al proprietario e lettura/esecuzione a gruppo e altri
- chown: cambia il proprietario e il gruppo di un file. Ad esempio, chown www-data:www-data file.php
Per WordPress, i permessi corretti sono generalmente 755 per le directory e 644 per i file, con il file wp-config.php impostato a 600 per maggiore sicurezza. Permessi troppo permissivi (come 777) rappresentano un rischio serio perché consentono a qualsiasi processo sul server di modificare i file.
Gestione dei Processi e delle Risorse
Sapere cosa sta succedendo sul server è fondamentale per diagnosticare problemi di performance o individuare processi anomali. I comandi più utili sono:
- top o htop: mostrano in tempo reale i processi attivi, l’utilizzo di CPU, memoria e swap
- df -h: visualizza lo spazio disco utilizzato e disponibile su tutte le partizioni
- du -sh directory/: mostra la dimensione totale di una directory
- free -m: mostra l’utilizzo della memoria RAM in megabyte
- ps aux: elenca tutti i processi in esecuzione con dettagli su CPU e memoria
Log del Server: Dove Cercare gli Errori
I log sono i registri degli eventi del server e rappresentano la prima risorsa per diagnosticare problemi. I file di log più importanti per un server web si trovano tipicamente in /var/log/: apache2/error.log o nginx/error.log per gli errori del web server, syslog per gli eventi di sistema, auth.log per i tentativi di autenticazione. Il comando tail -f /var/log/apache2/error.log permette di monitorare il log in tempo reale.
Comandi di Rete e Diagnostica
Quando il sito non funziona o è lento, i comandi di rete aiutano a identificare dove si trova il problema:
- ping: verifica la raggiungibilità di un server e misura la latenza
- curl: effettua richieste HTTP dal terminale, utile per testare API e verificare gli header di risposta
- netstat -tlnp: mostra le porte in ascolto e i processi che le utilizzano
- dig: interroga i server DNS per verificare la configurazione dei record del dominio
- traceroute: traccia il percorso dei pacchetti dal server alla destinazione, identificando eventuali colli di bottiglia
Per chi gestisce infrastrutture cloud, la padronanza di questi comandi è essenziale per il monitoraggio e la risoluzione dei problemi. Anche ambienti managed richiedono occasionalmente interventi da terminale che non possono essere eseguiti tramite pannello di controllo.
Da Dove Iniziare: Risorse per l’Apprendimento
Imparare Linux non significa memorizzare centinaia di comandi: significa comprendere la logica del sistema e sapere dove cercare le informazioni. Il comando man (manual) seguito dal nome di qualsiasi comando apre la documentazione integrata. L’opzione –help fornisce un riassunto delle opzioni disponibili. La community Linux è vasta e generosa: siti come StackOverflow, i forum delle distribuzioni e le wiki ufficiali offrono risposte a praticamente qualsiasi domanda.
Il consiglio più pratico è iniziare con un ambiente sicuro dove sperimentare senza rischi, come una macchina virtuale locale o un VPS economico dedicato ai test. Evita di fare pratica direttamente sul server di produzione: un comando sbagliato può causare danni irreparabili.
Se hai bisogno di supporto nella gestione del tuo server Linux o vuoi approfondire le competenze del tuo team, il team di G Tech Group è a disposizione. Scrivici a su*****@********up.it o contattaci su WhatsApp al numero 0465 84 62 45.