Apache con multidominio automatico

From Ability
Jump to: navigation, search

L'idea è quella di creare un sistema semplice per poter attivare un dominio di test semplicemente aggiungendo una directory. In questa maniera si permette a chiunque di creare un dominio accessibile via HTTP e di rimuoverla in pochi passi.

L'idea di base è tutte le directory {PATH}/NOME_DIRECTORY sono accessibili da http://NOME_DIRECTORY.devel.abindsula.com

Configurare Bind9

Il primo step è quello di configurare bind, il nameserver, per far puntare tutti i domini *.devel.abinsula.com all'IP del server

In /etc/bind/named.conf.default-zones aggiungere

zone "devel.abinsula.com" {
	type master; 
	file "/etc/bind/db.devel.abinsula.com";
};

creare il file /etc/bind/db.devel.abinsula.com

;
; BIND data file for local loopback interface
;
$TTL	604800
@	IN	SOA	devel.abinsula.com. root.devel.abinsula.com. (
			      2		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
; 
@	IN	A	62.75.138.29
@	IN	NS	boole.abinsula.com.
root	IN	A	62.75.138.29
*	IN	A	62.75.138.29


Configurare Apache

Creare il file /etc/apache2/sites-available/devel.abinsula.com

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	UseCanonicalName Off
	ServerName devel.abinsula.com
	ServerAlias *.devel.abinsula.com
	VirtualDocumentRoot /var/www/vhosts/%2+/%1
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/vhosts/%2+/%1>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
	
	<Directory /var/www/vhosts/%2+/%1/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		all ow from all
	</Directory>

 	
 	ErrorLog ${APACHE_LOG_DIR}/error.log 

	LogLevel warn 
 
 	CustomLog ${APACHE_LOG_DIR}/access.log combined 
 
</VirtualHost>

Attivare il sito

 ln -s /etc/apache2/sites-available/devel.abinsula.com /etc/apache2/sites-enabled/001-devel.abinsula.com

Riavviare apache

apache2ctl restart

Creare un nuovo dominio

E' sufficiente creare una directory in /var/www/vhosts/devel.abinsula.com/nuovodominio