Cos’è localhost, e come si applica a WordPress

Argomenti trattati:
Pubblicato per la prima volta il: 22 Gennaio 2021 - Ultimo aggiornamento: 11 Febbraio 2021

Tempo di lettura: <1 minuti

Localhost è un modo per indicare, in gergo informatico, il computer che sta eseguendo un software (letteralmente, “questo host”): se per esempio state testando un sito web in locale, quindi direttamente nel vostro PC o Mac, localhost indicherà l’indirizzo convenzionalmente associato al server del sito (ad esempio Apache), e sarà raggiungibile da quest’ultimo. A differenza di altre parole che, secondo i browser, vengono interpretate come tentativi di ricerche – ad esempio se io scrivo “hosting” il browser mi aprirà una pagina di Google coi risultati di ricerca di hosting – localhost ha un significato particolare, ed è associato all’host locale (tradotto localmente) nel senso appena descritto.

Quella che avete appena letto è una spiegazione molto generale: se volessimo entrare nel tecnico, dovremmo introdurre il concetto di indirizzo di loopback. Un indirizzo IP viene detto di loopback, cioè in qualche modo di “rientro”, nel senso che un loop-back è ad esempio un segnale o un flusso dati che parte e ritorno alla sorgente senza subire alcun processamento o filtraggio. Tecnicamente è quella che si chiama interfaccia virtuale, gestita dal sistema operativo e che viene chiamata in modi differenti: lo0 oppure lo.

In genere possiamo interrogare lo status di localhost o con il comando:

ifconfig

(su sistemi Windows) oppure

ipconfig

(su Mac e Linux) oppure, ancora, mediante una richiesta di ping.

Esempio con ifconfig da terminale, seguito da invio:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=201<PERFORMNUD,DAD>

il che rappresenta l’interfaccia di rete della LAN. Se poi lo interroghiamo col ping e va in timeout, è bloccato dal firewall oppure, più probabilmente, è inattivo. Esempio:

ping localhost

PING localhost (127.0.0.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
Request timeout for icmp_seq 6
Request timeout for icmp_seq 7
Request timeout for icmp_seq 8
Request timeout for icmp_seq 9
Request timeout for icmp_seq 10
Request timeout for icmp_seq 11
^C
— localhost ping statistics —

Che cos’è 192.168.l.l

192.168.l.l è il nome dell’indirizzo per configurare il proprio router, modem o modem router che abbiamo a casa oppure in ufficio. Se lo andiamo a scomporre ci possiamo rendere conto di come sia fatto: anzitutto, è un indirizzo IP, ma per dirla meglio è un indirizzo IP riservato per uno scopo specifico. Infatti serve ad accedere al gateway di accesso a localhost, per poter configurare il tuo modem router ad esempio o per eseguire dei particolari test di rete.

Tecnicamente parlando, 192.168.1.1 è un indirizzo di broadcast che viene usualmente ottenuto mediante OR logico su una sottomaschera di rete.

Lo scopo della pagina 192.168.1.1 è quello di darti un accesso diretto alla pagina di configurazione del tuo router o modem-router, in sostanza.

Per accedere direttamente clicca qui di seguito:

192.168.1.1

Ovviamente la schermata che vedrai cambierà a seconda dei casi: se ti connetti con una Vodafone Station, ad esempio, cliccando sull’indirizzo 192.168.1.1 vedrai una cosa del genere:

A cosa serve locahost?

In genere lo scopo è quello di test e verifica della rete a livello sistemistico, ma si può usare localhost anche per sviluppare siti web in locale. Viene infatti usato primariamente a scopo di test dai tecnici informatici, ed è infatti il contesto in cui sviluppiamo siti web in locale lavorando sul server Apache pre-installato ed attivato su localhost. In questo senso, dire indirizzo di loopback è la stessa cosa di localhost.

Convenzionalmente, localhost è un alias per l’indirizzo IP:

127.0.0.1

nella versione IPv4, e nei sistemi operativi moderni localhost può essere anche rappresentato dalla rappresentazione alternativa:

::1

nella versione IPv6. Il primo blocco di cifre, 127, suggerisce immediatamente al dispositivo che si tratta di un loopback, per cui la richiesta non verrà inoltrata altrove. Ovviamente gli IP servono per comunicare sulla rete, e sono assegnati dal router seguendo una determinata numerazione predefinita e univoca: se molti IP sono utilizzabili pubblicamente (suddivisi tra quelli versione IPv4 e quelli di nuova generazione o IPv6), altri – come 127.0.0.1, per l’appunto – sono riservati a scopi specifici, e non sono assegnabili. Altri esempi di IP utilizzabili solo per scopi privati e non assegnabili sono ad esempio 0.0.0.0 (INADDR_ANY o indirizzo di wildcard), 255.255.255.255 (la maschera di sottorete) e così via.

127.0.0.1 è raggiungibile dal PC sul quale stiamo eseguendo il server, il sito o l’app, ma non è mai raggiungibile dall’esterno (almeno, non in questa forma).

Loopback su SSH

Tanto per fare un esempio che sarà familiare a chi usa SSH, noi solitamente ci connettiamo all’indirizzo IP (ad esempio 123.123.234.234) del server con il nome utente pippo con questa sintassi:

ssh [email protected]

e questo presuppone che dal nostro PC ci stiamo connettendo su un server remoto (localizzato su 123.123.234.234), in un’altra postazione, mediante la rete internet. E se il server fosse già in esecuzione nel nostro computer? In questo caso andremmo ad usare localhost:

ssh [email protected]

ovviamente ammesso che in locale ci sia un servizio SSH attivo e funzionante.

Localhost nel browser: le porte

L’uso di localhost standard da browser è destinato alla porta di default, la 20, che è “sottintesa”: quindi noi scriviamo nella barra del browser

http://localhost

ed è la stessa cosa che scrivere e connettersi alla porta 80:

http://localhost:80

Non è obbligatorio che la porta sia per forza la 20: MAMP, ad esempio, che è un client per emulare un server MySQL + Apache + PHP sul proprio computer, lavora anche su porte differenti come la 8080, 4444 oppure 88888. Fa questo non per vezzo, ovviamente, ma per lasciare libera la porta 20 per altri servizi. Per cui, in questi casi, potete provare ad accedere con queste notazioni:

  • http://localhost:8080
  • http://localhost:4444
  • http://localhost:88888

Estendendo l’esempio qui sopra, possiamo voler configurare uno spooler di stampa facendo accesso su localhost alla porta 631, quella di CUPS per Unix:

http://localhost:631

La cosa essenziale in questi casi, comunque, è sapere a quale porta connettersi.

Come fare una diagnosi se localhost funziona (Apache server)

Quando il server localhost funziona, appare la scritta Funziona! oppure It works! nel vostro browser.

localhost funziona con HTTPS?

localhost in genere può funzionare sia su HTTP e su HTTPS, ma in genere per ambienti di sviluppo non è sempre utile configurarlo in HTTPS, anche perchè ciò comporterebbe l’uso di un certificato SSL autofirmato, pressochè inutile. Allora la prassi, in questi casi, è quella di sviluppare su localhost in HTTP, e poi testare il sito o il servizio in HTTPS su un VPS o una droplet in seguito.

HTTPS funzionerà sulla porta 21, mentre HTTP sulla 80.

Localhost e WordPress

Per installare WordPress in locale, vedi qui (qui trovi le istruzioni per Mac)

In genere localhost è la “parola magica” che entra in gioco nelle configurazioni del sito in WordPress, quando lavoriamo sul file wp-config.php. Nel dettaglio, la riga su cui compare è quella del cosiddetto Database Host:

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

In questo caso è bene non fare confusione: il localhost non è un riferimento al server web, come nel caso di Apache che usiamo per i siti in fase test, bensì è un riferimento al server MySQL del database. Quello che stiamo dicendo scrivendo che la costante DB_HOST è pari a localhost, in sostanza, è che il sito non deve cercare il database da un PC diverso da quello su cui sta operando, ma ne ha già uno integrato (assieme a PHP, Apache, il sistema operativo ecc). Sebbene sia una situazione abbastanza standard nella quasi totalità di siti web in WordPress, non è una regola assoluta e, in molti casi di fatto al posto di localhost potrebbe anche, in alternativa, comparire un indirizzo IP.

Che cos’è localhoste

localhoste è in genere l’oste (hoste) dell’osteria vicino casa (local), dal quale recarsi dopo una dura giornata di lavoro. In altri contesti, peraltro, la “e” finale scompare, e viene riportato un singolare modo di dire: quando qualcuno ti chiede “sai chi ti saluta?” e l’altra persona ti chiede, incuriosa, “chi?“, tu puoi rispondere “sto localhost“, ovvero “questo host“, ovvero – ancora – localhost. (ogni tanto, si scherza)

5/5 (42)

Che te ne pare?