Sottodomini su localhost
Quando si lavora con Apache localmente, il modo più comune per usarlo è tramite l'URL "http://localhost". Quando si esegue lo sviluppo web o qualche tipo di test, potrebbe essere necessario creare sottodomini su localhost, proprio come sui server online.
Questo post mostra come creare sottodomini all'interno di Apache su localhost. È facile e richiede solo pochi minuti.
1. Crea host di sottodomini
Il file hosts su un sistema Linux viene utilizzato per mappare gli indirizzi IP su nomi host specifici. Possiamo facilmente creare più sottodomini qui e indirizzarli all'indirizzo IP di localhost.
Prima modifica /etc/hosts file per aggiungere i sottodomini che desideri creare.
$ cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 enlightened 127.0.0.1 a.localhost 127.0.0.1 b.localhost 127.0.0.1 c.localhost
Nell'esempio sopra ho aggiunto 3 sottodomini, vale a dire a.localhost b.localhost e c.localhost
Ora prova i sottodomini eseguendo il ping, per assicurarti che siano accessibili
$ ping a.localhost PING a.localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.029 ms 64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.029 ms 64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.028 ms ^C
Come possiamo vedere sopra, i sottodomini rispondono alle nostre query ping, solo dopo che li abbiamo aggiunti al file hosts.
2. Crea le directory principali dei documenti del tuo sottodominio
La prossima cosa da fare è decidere dove conservare i file del sottodominio. Può essere qualsiasi directory a tua scelta, ma in questo esempio stiamo usando la directory /var/www/, usata da apache.
/var/www/subdomains/a/
3. Ora crea host virtuali nel file di configurazione di Apache
L'ultima cosa da fare è creare gli host virtuali Apache necessari per ciascuno dei sottodomini. Fondamentalmente stiamo parlando ad Apache del sottodominio che deve servire insieme a vari dettagli come la radice del documento per ciascuno di essi.
In questo esempio, stiamo modificando il file di configurazione predefinito 000 principale. In alternativa puoi creare file di configurazione separati nella directory dei siti disponibili e quindi collegarli in modo simbolico alla directory dei siti abilitati o usando il comando a2ensite.
$ sudo nano /etc/apache2/sites-enabled/000-default
Aggiungi una sezione di virtualhost in fondo come questa
# Sub domain a.localhost <VirtualHost *:80> DocumentRoot /var/www/subdomains/a/ ServerName a.localhost <Directory /var/www/subdomains/a/> Options Indexes FollowSymLinks MultiViews +Includes AllowOverride FileInfo Options Order allow,deny allow from all </Directory> </VirtualHost>
Ora riavvia Apache
$ sudo service apache2 restart
4. Provalo
Ora apri gli URL per i sottodomini nel browser, http://a.localhost/ o simili e verifica se i file di indice vengono visualizzati o meno.
Il comando apachectl può essere utilizzato anche per controllare i dettagli dei sottodomini. Usa l'opzione "-S" e controlla l'output.
$ sudo apachectl -S [sudo] password for enlightened: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server 127.0.1.1 (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost 127.0.1.1 (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost a.localhost (/etc/apache2/sites-enabled/000-default:42) Syntax OK ...
Riferimenti
La pagina seguente del wiki di Ubuntu contiene ulteriori informazioni sulla configurazione di sottodomini localhost in apache.
https://help.ubuntu.com/community/LocalhostSubdomain