Siccome avevo la necessit? di avere pi? di un sito sul mio serverino sono stato
2 giorni a fare letture e prove con Apache su Ubuntu server.
Magari qualcuno ha bisogno della stessa cosa e pu? prenderne spunto.
Ho provato 2 modi diversi e entrambi funzionano bene, gli indirizzi che ho usato sono
legati al provider no-ip che fornisce il servizio dns gratuito ma potrebbero essere
anche comuni domini www.
Una soluzione pratica e veloce ? quella di modificare il file /etc/apache2/httpd.conf
Diciamo di avere 2 host che chiameremo:
www.sito1.com e
www.sito2.comCreare le cartelle in /var/www
mkdir /var/www/sito1.com
mkdir /var/www/sito2.com
modificare il file httpd.conf
sudo nano /etc/apache2/httpd.conf
<VirtualHost *:80>
DocumentRoot /var/www/sito1.com
ServerName sito1.com:80
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/sito2.com
ServerName sito2.com:80
</VirtualHost>
salvare il file
riavviare Apache con il comando: sudo /etc/init.d/apache2 reload
Pubblicare nelle rispettive cartelle i file del sito.
Altra soluzione (descritta da Apache. *consigliato)
Creare le cartelle:
mkdir /var/www/sito1.com
mkdir /var/www/sito1.com/public ;cartella che renderemo pubblica e che conterr? il sito
mkdir /var/www/sito1.com/cgi-bin ;cartella che conterr? gli script del sito
facciamo la stessa cosa per sito2
creiamo il file di configurazione dei domini:
sudo nano /etc/apache2/sites-available/sito1.com
#copiare e incollare sul file, volendo si possono cancellare le info.
<VirtualHost *:80 >
#tag di indirizzamento richieste alla porta 80 (default)
ServerName
www.sito1.com#nome del dominio
DocumentRoot /var/www/miodominio.com/public
#indica la directory del dominio ed ? anche la directory che dovrebbe contenere l?index
Alias /phpmyadmin "/usr/share/phpmyadmin"
#impostiamo un alias di dominio, digitando sul browser
www.sito.com/phpmyadmin verremo indirizzati a quella directory che #contiene il software phpmyadmin e quindi potremo amministrare il database
<Directory "/var/www/sito1.com/public">
#cominciamo la configurazione dei permessi della directory public
Order Deny,Allow
Allow from all
#definiscono permessi
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
<Directory "/var/www/sito1.com/cgi-bin">
#directory che conterr? gli script cgi
AllowOverride None
#diciamo ad apache di non leggere il file .htaccess anche se presente perch? in questa directory non serve
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch -Indexes
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error_sito1.com.log
#file degli errori
LogLevel warn
#dichiariamo il livello ?verbosit?? dei log e possiamo scegliere tra debug, info, notice, warn, error, crit, alert, emerg
CustomLog /var/log/apache2/access_siro1.com.log combined
#tiene traccia delle richieste al server apache
ServerSignature On
#indica al server di includere la ?firma? nei messaggi di errore, che include il nome del server ed il SO che si sta utilizzando
</VirtualHost>
#chiusura del tag VirtualHost
Salvare e chiudere il file e creare quello del sito2
abilitiamo il dominio sito1 e sito2 con:
sudo a2ensite sito1.com
sudo a2ensite sito2.com
riavviamo Apache
sudo /etc/init.d/apache2 reload
Fatto questo i 2 siti sono ora raggiungibili
Questo esempio ? stato tratto dai seguenti link:
http://www.apache.org/http://www.oscene.net/it/sysadmin/web-server/howto-configurazione-dei-virtual-hosts-con-apache2