Ecco come configurare il nostro web server preferito (Apache ovviamente ) in modo da ottenere un sotto dominio.
Preambolo: i sub-domain sono entità del tutto simili ai domini. Ma, a differenza di questi vengono definiti di terzo livello. Un esempio può spiegare meglio come funziona il tutto.
Prendiamo il dominio blog.miosito.com. Quella che comunemente viene definita estenzione del dominio, è il dominio di primo livello (.com).
Il nome del dominio, miosito.com, è il dominio di secondo livello. E’ quello che generalmente registriamo presso i nostri provider.
Il dominio di terzo livello corrisponde ad ogni sottodominio riferibile al dominio di secondo livello. Nel nostro caso è blog.miosito.com.
Nella realtà delle cose, un dominio di terzo livello funziona esattamente come uno di secondo. L’unica differenza è che l’indirizzo di riferimento è inalberato in un dominio di secondo livello. Dobbiamo semplicemente fare in modo che la digitazione dell’indirizzo porti l’utente alla document root impostata per il sotto dominio.
Procediamo in locale:
Premessa
Io uso Ubuntu Edgy. Ho installato Apache dai repository ufficiali. Regolatevi di conseguenza .
Configureremo il sottodominio subdomain.localhost.
Creiamo lo spazio che ospiterà il sotto dominio
Nella document root di Apache, create una directory che ospiterà i file del sotto dominio.
Ovviamente usate come directory target la vostra document root di apache.
Create un file di nome index.html e dentro semplicemente scriverete:
Configurazione Apache
Apriamo il file di configurazione di Apache. In Ubuntu il file che si occupa di questa parte della configurazione è
Usate il vostro editor di testo preferito. Nella parte bassa del file inserite:
ServerName subdomain.localhost
DocumentRoot /home/davide/public_html/subdomain
#usate la VOSTRA document root!
</VirtualHost>
Creiamo l’associazione IP dominio
Quello che in remoto sarebbe la creazione di un nuovo record DNS . In locale agiamo editando il file:
Aggiungiamo la riga:
Riavviamo Apache:
E puntando il nostro browser su http://subdomain.localhost saremo indirizzati al nuovo subdominio, visualizzando la scritta:
<VirtualHost *>
ServerName subdomain.localhost
DocumentRoot /home/davide/public_html/subdomain
#usate la VOSTRA document root!
</VirtualHost>
manca una ‘l’
Grazie mille! Correggo!
sen una cosa…
geniale l’idea di mettere la cartella di pubblicazione sotto il tuo home.
Ma ora come faccio con i permessi? Il subdomain mi da inevitabilmente 403 perchè (suppongo) il proprietario non è apache (www-data?) ma me!
va bene apache ma io li devo poter modificare senza problemi i file nella cartella.
Come risolvi tu la cosa?
Grazie ma io il discorso dei gruppi e degli utenti non l’ho mai masticato troppo!
tnx
Per essere una guida assolutamente perfetta, manca solo che spieghi come impedire che l’utente, oltre a visualizzare
http://subdomain.miosito.it/pagina.html
NON POSSA VEDERE la stessa pagina tramite
http://miosito.it/subdomain/pagina.html
Lo so, è facile. Ma visto che ci sei…
A che potrebbe servire?
Ad attivare/disattivare nomi di dominio e conseguentemente interi siti, operando esclusivamente sulla configurazione host (e, immagino, ad un sacco di altre cose)
… bhe per pra ho deciso di far girare apache dal mio utente…quello della home…
…gridate pure allo scandalo! 🙂
@ sgrezzeria: opz, scusa il ritardo. Basta modificare i permessi della directory. Se serve anche l’owner.
Impostando i file “statici” a 644 e gli script a 755 non dovresti avere problemi. Anche se ricorda, è indicazione di massima, dipende da quello che hai 🙂
non va…
ho provato anche a dargli
chown -R 777 ./*
ma sempre forbidden rimane!
Invece non appena l’utente di apache divento io e non “www-data” tutto è ok.
Inizierei anche a provare a mettere il mio utente in www-data o l’utente www-data nel mio gruppo ma mi sa che faccio danni (e poi non vedo www-data nell’utilitàgrafica di gestione gruppi di ubuntu).
La soluzione di cambiare l’utente di apache (come da tuo ultimo post) sembra la migliore: posso modificare il file e salvare senza preoccuparmi dei permessi. Chissàuna volta ripubblicando tutto online come va a finire???
Grazie
Puoi tranquillamente modificare l’utente di apache direttamente dal file di configurazione.
La messa on line non è correlata all’ownership del web server locale.
PS: dopo aver cambiato utente ad apache, meglio risistemare i permessi. Tutto a 777 è un po’ eccessivo.
> La messa on line non è correlata all’ownership del web server locale.
mi stai dicendo che uploadando i file, i permessi dei file online non si curano dei permessi in locale ma li ereditano dall’utente ftp?
Cmq grazie per la dritta dell’utente apache…non ci avevo mai pensato!
No aspetta sgrezzeria. I permessi su file e directory, se il server in cui uppi i file può (non è Windows per intenderci) riscrive gli stessi permessi del file in locale, ma l’owner del file sul server saràsempre l’utente ftp che ha uploadato il file.
Se in locale il file è di www-data e ti colleghi via ftp al server come web1010, i permessi del file saranno gli stessi di quelli in locale. L’owner invece saràweb1010.