Server Web · 4 min read · Jan 07, 2026

Crea il tuo server web con BIND e Apache su CentOS 5 (semplificato) - Pagina 2

Saltiamo di nuovo :) Questa volta un po’ più in là fino alla riga 1005 dove dovresti vedere:

NameVirtualHost *:80

La direttiva NameVirtualHost dice ad Apache che vogliamo utilizzare l’hosting virtuale basato su nome, o in termini più semplici, un insieme di siti web che utilizzano tutti lo stesso indirizzo IP. Aggiungi un paio di righe vuote sotto ‘#NameVirtualHost *:80’ e sulla riga subito sotto metti NameVirtualHost e il tuo nome host o indirizzo IP seguito da :80. Il ‘:80’ significa che stiamo utilizzando l’hosting virtuale basato su nome per il protocollo HTTP.

Quindi dovresti produrre qualcosa del genere:

NameVirtualHost host.website.com:80

Ora siamo quasi a posto con la configurazione del nostro file httpd.conf. L’unica cosa rimasta da configurare è se qualcuno visita il nostro server utilizzando l’IP piuttosto che il nome di dominio, imposteremo il nostro nome host predefinito per essere visibile a quegli utenti. Possiamo inserire questo alla fine del file di configurazione


    ServerAdmin [email protected]
    DocumentRoot /www
    ServerName 77.77.197.69
    ErrorLog logs/error_log
    CustomLog logs/access_log common

Per mantenere il nostro

httpd.conf

più facile da gestire, dovremmo aggiungere questa riga in fondo al file:

Include conf/vhosts/*.conf

Significa che includeremo tutte le voci .conf da /etc/httpd/conf/vhosts dove memorizzeremo gli host virtuali per i nostri siti web man mano che li aggiungiamo. Sarà più facile da capire man mano che procediamo. Ok, siamo quasi a posto, salva httpd.conf e procedi.

Creazione delle directory del sito web

Dobbiamo ora creare la struttura delle directory del sito web per gestire correttamente i nostri siti web. Prima di tutto, creiamo la directory principale:

mkdir /www

Ora stiamo rendendo root il proprietario di /www:

chown root.root /www

Prima di andare oltre, dobbiamo fare un aggiustamento, dobbiamo aggiungere una zona per host.website.com nel nostro named.conf perché l’abbiamo usato come nome host in httpd.conf e riceveremo un errore se non lo facciamo. Quindi dovremmo aggiungere questo a named.conf

zone "host.website.com" IN {
        type master;
        file "/var/named/host.website.com.db";
};

E naturalmente qui sotto c’è il contenuto del file:

/var/named/chroot/var/named/host.website.com.db
$TTL 14400
@      86400    IN      SOA     ns1.website.com. [email protected]. (
                2008021501      ; serial, data di oggi+data di oggi
                86400           ; refresh, secondi
                7200            ; retry, secondi
                3600000         ; expire, secondi
                86400 )         ; minimum, secondi
host.website.com. 86400 IN NS ns1.website.com.
host.website.com. 86400 IN NS ns2.website.com.
host.website.com. IN A 77.77.197.69
localhost.host.website.com. IN A 127.0.0.1

Puoi aggiungere quanti più record desideri. Prima di riavviare named, crea un link:

ln -s/var/named/chroot/var/named/host.website.com.db /var/named/host.website.com.db
service named restart

Ora torniamo alla struttura delle directory. Quindi abbiamo aggiunto una zona per il nostro

website.com

ora abbiamo bisogno di una directory virtuale per esso.

cd /www
mkdir website.com
cd website.com
mkdir html
mkdir html/cgi-bin
mkdir databases
mkdir logs

Poiché abbiamo creato una directory per il nostro sito web, tutto ciò di cui abbiamo bisogno è un utente che sarà in grado di gestire questo nome di dominio. Possiamo farlo con:

useradd -d /www/your-domain/ domain_user

o se vuoi limitare l’accesso alla shell all’utente usa questo:

useradd -d /www/your-domain/ -s /sbin/nologin domain_user

Dopo che l’utente è stato aggiunto, possiamo modificare la sua password con:

passwd

Questo utente non ha ancora il suo “casa” :) posto di cui è proprietario, ora aggiungiamo questo:

cd /www && chown domain_user:domain_user website.com

Se crei una directory “databases” allora dovrai cambiare il proprietario all’utente mysql altrimenti MySQL non sarà in grado di scrivere nei file del database. Tutte le directory, sottodirectory e file che trattano i database dovrebbero essere di proprietà dell’utente mysql e possiamo farlo con questo comando:

cd website.com && chown -R mysql:mysql databases

Con questo abbiamo completato la creazione della struttura delle directory del sito web, ora l’unica cosa rimasta da fare è dire ad Apache dove si trova il nostro sito web e abbiamo finito.

Ora torniamo un po’ indietro quando stavamo configurando httpd.conf abbiamo inserito una riga lì:

Include conf/vhosts/*.conf

Ora capirai perché l’abbiamo fatto se non lo hai già fatto. Poiché la cartella non esiste ancora, dobbiamo crearla:

cd /etc/httpd/conf && mkdir vhosts

Ora entriamo nella directory vhosts:

cd vhosts

e creiamo un nuovo file per il nostro dominio:

nano website.com.80.conf

Dovremmo inserire quanto segue in questo file:


    ServerAdmin [email protected]
    ServerName website.com
    ServerAlias www.website.com
    DocumentRoot /www/website.com/html
    ScriptAlias /cgi-bin/ /www/website.com/html/cgi-bin/
    ErrorLog /www/website.com/logs/error_log
    CustomLog /www/website.com/logs/access_log combined

Siamo finalmente arrivati al punto finale ora quando abbiamo detto ad Apache dove si trova la directory del nostro sito web, ora ogni richiesta dal browser per www.website.com sarà letta da /www/website.com/html; lì dovresti mettere i tuoi file es: index.html. Ora possiamo accendere il nostro httpd, o riavviarlo se era già acceso.

service httpd start

oppure

service httpd restart

Se stai riscontrando problemi con questo tutorial o con la configurazione di Apache o BIND non esitare a contattarmi. Sono sicuro di aver avuto problemi anche peggiori - sarò felice di aiutarti nel mio tempo libero.

Autore

: Emir Ibrahimbegovic

E:

[email protected]

W:

www.green.ba

Grazie a:

Tony Bhimani, Sébastien Wains, Nayyar Ahmad

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.