Skip to content


HowTo: Configurazione dei Virtual Hosts (alias) con Apache 2 su Debian ETCH

Apache

Premessa

Questo tutorial non intende in nessun modo sostituire la reference ufficiale di Apache, per cui descrizioni dettagliate delle singole parti dei files di configurazione possono essere trovate nel sito ufficiale di Apache.

Introduzione

Nella guida precedente abbiamo parlato dell'installazione e la configurazione di un server LAMP con Debian, Apache2, MySQL e PHP, passiamo adesso alla configurazione dei singoli virtual hosts (ovvero degli hosts virtuali).

Il VirtualHosting consente la gestione di più domini basandosi sul loro nome ma non sul loro IP ed è una pratica ampiamente utilizzata in quanto è facile immaginare il gap di guadagno semplicemente immaginando il costo di una farm costituita da una serie di server che ospitano ciascuno un dominio diverso ed un solo server che ospita diversi domini diversi. L'unico appunto che può essere fatto a questa metodologia di gestione è che effettivamente se si ha un dominio molto attivo esso potrebbe monopolizzare le risorse di sistema lasciando solo la rimanenza delle risorse agli altri domini hostati difatti questo tipo di configurazione abitualmente è utilizzata per ospitare domini che non generano traffico eccessivo.

Se avete seguito la guida sull'installazione e la configurazione di un server LAMP con Debian non è necessario altro infatti l'intento di questo tutorial è dare le basi per la configurazione dei virtual hosts.

Azioni preliminari per configurare Apache

Per prima cosa prendiamo nota della DocumentRoot impostata nel file di configurazione di Apache2 digitando:

cat /etc/apache2/apache2.conf | grep DocumentRoot

di default la DocumentRoot è /var/www e utilizzerò questo riferimento nel resto del tutorial, tuttavia può essere facilmente modificata editando /etc/apache2/apache2.conf cercando la riga contenente DocumentRoot (per esempio con vim vi basterà digitare /DocumentRoot ) e modificando il percorso (ricordatevi che dovete creare la directory interessata prima di procedere al riavvio di apache tramite il comando /etc/init.d/apache2 reload ).
Cerchiamo di configurare l'ambiente per un dominio generico che con un po' di fantasia chiameremo miodominio.com . Adesso che conosciamo la nostra DocumentRoot possiamo creare una directory al suo interno:

mkdir /var/www/miodominio.com

che non renderemo pubblica ed una directory public che invece renderemo pubblica per cui:

mkdir /var/www/miodominio.com/public

creiamo anche una directory che useremo per l'utilizzo degli script CGI e vedremo in seguito come utilizzarla:

mkdir /var/www/miodominio.com/cgi-bin

I file di configurazione di Apache

Procediamo con la creazione del file di configurazione per il dominio che vogliamo configurare, quindi creiamo e cominciamo a compilare il file suddetto col comando

vim /etc/apache2/sites-available/miodominio.com

inserendovi il seguente testo che analizzeremo riga per riga:

<VirtualHost *:80 >
ServerAdmin webmaster@miodominio.com
ServerName www.miodominio.com
DocumentRoot /var/www/miodominio.com/public
Alias /phpmyadmin "/usr/share/phpmyadmin"
<Directory "/var/www/miodominio.com/public">
Order Deny,Allow
Allow from all
Options -Indexes
</Directory>
<Directory "/var/www/miodominio.com/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch -Indexes
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error_miodominio.net.log
LogLevel warn
CustomLog /var/log/apache2/access_miodominio.net.log combined
ServerSignature On
</VirtualHost>

procediamo all'analisi della configurazione di apache riga per riga:

<VirtualHost *:80 >
è il tag che indica che devono essere processate le richieste indirizzate alla porta 80 (che comunque è quella di default) di tutti gli IP configurati nella macchina

ServerAdmin webmaster@miodominio.com
serve per indirizzare correttamente le richieste di supporto in caso di errori (pagine mancanti, richieste con accesso negato, ecc)

ServerName www.miodominio.com
viene utilizzato per configurare il nome di dominio da gestire e che lo distinguerà dagli altri

DocumentRoot /var/www/miodominio.com/public
ci dice in quale directory saranno indirizzate le richieste di connessione per il nome di dominio specificato nella riga precedente ed è anche la directory che quindi dovrebbe contenere l'index

Alias /phpmyadmin "/usr/share/phpmyadmin"
in questo modo impostiamo un alias di dominio ovvero digitando sul browser www.miodominio.com/phpmyadmin verremo indirizzati a quella directory che contiene il software phpmyadmin e quindi potremo amministrare il database

<Directory "/var/www/miodominio.com/public">
con questo tag cominciamo la configurazione dei permessi della directory public

Order Deny,Allow
definisce l'ordine di processamento dei permessi; nella fattispecie prima le negazioni di servizio (nel caso ci dovessero essere) e poi gli accessi

Allow from all
siccome nel nostro esempio non ci preoccupiamo di negare l'accesso in quanto vogliamo che il sito sia perfettamente accessibile dall'esterno consentiamo l'accesso a tutti

Options -Indexes
serve per restituire un messaggio di errore se nella directory nella quale si tenta l'accesso non è presente un file index , ciò serve per evitare di rendere pubblico materiale al quale non sono presenti collegamenti diretti

</Directory>
chiude il tag aperto poco prima

<Directory "/var/www/miodominio.com/cgi-bin">
con questo tag cominciamo a configurare la directory che conterrà gli script cgi

AllowOverride None
con questa opzione diciamo esplicitamente ad apache di non leggere il file .htaccess anche se presente perchè di fatto in questa directory non serve

Options ExecCGI -MultiViews +SymLinksIfOwnerMatch -Indexes
la descrizione di questa direttiva è un po' più lunga delle altre perchè ci sono un paio di opzioni di cui parlare (rimando al sito ufficiale per la documentazione dettagliata ed in inglese). Con ExecCGI consentiamo l'esecuzione di scripts CGI se è abilitato il modulo mod_cgi; con -MultiViews facciamo in modo che quando viene richiamata tramite browser la directory /var/www/miodominio.net/cgi-bin/qualcosa e questa directory non esistesse apache NON (vedi il - antecedente l'opzione) cerca un qualunque file in /var/www/miodominio.net/cgi-bin/ del tipo qualcosa.* ; con +SymLinksIfOwnerMatch facciamo in modo che Apache segua i links simbolici di sistema contenuti in questa directory solo se il proprietario del file o della directory di destinazione è lo stesso utente proprietario del link ; la -Indexes l'abbiamo vista prima

Order allow,deny
Allow from all
</Directory>

queste tre righe le abbiamo analizzate prima

ErrorLog /var/log/apache2/error_miodominio.net.log
questa riga serve per specificare il file in cui scrivere gli errori di apache che vengono riscontrati dagli utenti in fase di navigazione; è bene impostare un nome di questo file diverso per ogni dominio per facilitarne la lettura

LogLevel warn
con questa opzione dichiariamo il livello "verbosità" dei log e possiamo scegliere tra debug, info, notice, warn, error, crit, alert, emerg

CustomLog /var/log/apache2/access_miodominio.net.log combined
questa direttiva serve per tenere traccia delle richiesta al server apache

ServerSignature On
indica al server di includere la "firma" nel footer dei messaggi di errore, che include il nome del server ed il tipo di sistema operativo che si sta utilizzando

</VirtualHost>
questa indica la chiusura del tag VirtualHost

Completamento della configurazione di Apache

Per abilitare finalmente il nostro dominio sul server bastano due soli comandi

a2ensite miodominio.com
/etc/init.d/apache2 reload

col primo abilitiamo il nostro dominio creando un symlink a /etc/apache2/sites-available/miodominio.com in /etc/apache2/sites-enabled/miodominio.com e per disabilitarlo possiamo utilizzare i comandi

a2dissite miodominio.com
/etc/init.d/apache2 reload

ricordiamo sempre di ricaricare la cache di configurazione di apache ogni volta che viene modificato un file di configurazione.

Fatto ciò se i DNS sono aggiornati il nuovo sito sarà raggiungibile all'indirizzo www.miodominio.com.

Be Sociable, Share!

Posted in Web Server.

Tagged with , , , , , , , , , .


20 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. indoxxi says

    After I initially left a comment I seem to have clicked on the -Notify me when new comments
    are added- checkbox and from now on whenever a comment is added I receive 4 emails with the same comment.
    Is there a way you can remove me from that service?
    Appreciate it!

  2. Immobilienmakler Heidelberg says

    Der Artikel ist wirklich informativ. Das Thema hat mich schon länger interessiert und ich konnte hier noch einiges ergänzendes finden. Ich freue mich,
    weitere News zu lesen. Danke und Grüße aus Heidelberg Marco Feindler

  3. Web - design says

    What’s up to all, it’s in fact a nice for me to visit this web page, it contains valuable Information.

  4. putlocker 2016 free movies says

    Do you wish to watch your favorite flick however it is not offered on the cinema or video rental shop?

    Or do you have no time at all to visit the movie theater to see recent launches of action as well as thriller films?
    Never worry considering that there are some internet sites offered online which
    provide links to movie data source ready to be viewed online.

    Equivalent to the price of movie theater tickets, this is a far better selection to view motion pictures at the convenience of your residence.

    You may even locate premium quality films from the option of motion pictures offered from these websites.

    The internet site which uses access to new motion picture launches might additionally permit its site visitor to watch television shows on the computer.

    There are numerous channels which are available online, which you
    might only locate on your neighborhood cable television network.

    In many cases, there are tv programs you can view on the website which is not readily available on the provided cable or satellite TELEVISION channels.

  5. Cruises says

    We are a gaggle of volunteers and starting a new scheme in our community.
    Your website provided us with useful information to work on. You’ve
    performed an impressive task and our entire group will likely be thankful to you.

  6. auswelllife says

    Greetings I am so delighted I found your blog, I really found you by accident, while
    I was looking on Yahoo for something else, Nonetheless
    I am here now and would just like to say thank you for a marvelous post and a all round thrilling
    blog (I also love the theme/design), I don’t have time to browse
    it all at the moment but I have bookmarked it and also added
    in your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up
    the superb jo.

  7. assistencia tecnica motorola says

    I was curious if you ever considered changing the page layout of
    your blog? Its very well written; I love
    what youve got to say. But maybe you could a little more in the way of content so people
    could connect with it better. Youve got an awful lot of
    text for only having 1 or two images. Maybe you could space it out better?

  8. Ethel says

    I’m really enjoying the theme/design of your website. Do you
    ever run into any web browser compatibility problems?
    A couple of my blog audience have complained about my
    site not operating correctly in Explorer but looks great in Opera.
    Do you have any recommendations to help fix this issue?

  9. agn88 says

    Howdy very nice blog!! Guy .. Beautiful .. Amazing .. I will bookmark your site and take
    the feeds additionally? I am glad to seek out a lot of helpful information right here in the publish, we need work out more techniques on this regard, thank you for sharing.
    . . . . .

  10. 7meter chat says

    I believe that is one of the so much important information for me.
    And i am satisfied studying your article. But should commentary on some normal issues, The website style is perfect,
    the articles is really great : D. Just right job,
    cheers

  11. Virtual Tours says

    There is certainly a lot to learn about this subject.
    I really like all the points you’ve made.

  12. bobble head says

    Hi, I think your blog might be having browser compatibility issues.

    When I look at your blog in Chrome, it looks fine but when opening
    in Internet Explorer, it has some overlapping.
    I just wanted to give you a quick heads up! Other
    then that, great blog!

  13. asian glasses says

    I go to see each day some sites and information sites to read posts, however this webpage gives feature based articles.

  14. Debt Validation says

    Whats up very cool blog!! Man .. Beautiful ..
    Wonderful .. I will bookmark your site and take the
    feeds also? I’m satisfied to seek out numerous useful information here in the put up,
    we want work out extra strategies on this regard,
    thank you for sharing. . . . . .

  15. longa says

    After going over a few of the blog articles on your site,
    I really like your way of writing a blog. I added it to my bookmark site list and will be checking back
    in the near future. Take a look at my web site as well and tell me
    your opinion.

  16. injured worker says

    Superb, what a weblog it is! This webpage provides valuable data to us, keep it up.

  17. Formación Wordpress Barcelona says

    Me ha interesado , la noticia, ciertamente excelente, muchas gracias por la información, muy
    aclarativa. Sigo investigando por la pagina a aprender
    mas cosas interesantes, merci de nuevo.

  18. Monserrate says

    무엇을 받든지 마음을 다해 받아라. – 공자

  19. Maple RCM school says

    That is a really good tip particularly to those new to the
    blogosphere. Simple but very precise information? Appreciate your sharing this one.

    A must read post!

  20. du lịch bình dương says

    I think what you said made a bunch of sense. But, think about this, what if
    you were to create a killer headline? I mean, I don’t want to tell you how to run your blog, however what if you added something to possibly get
    a person’s attention? I mean HowTo: Configurazione dei Virtual Hosts (alias)
    con Apache 2 su Debian ETCH – OScene.net is kinda vanilla.
    You should peek at Yahoo’s home page and watch how they create
    post headlines to get viewers to click. You might try adding a video or a related pic or two to grab people excited
    about everything’ve got to say. Just my opinion, it would bring your
    website a little livelier.

1 3 4 5



Some HTML is OK

or, reply to this post via trackback.