Apache con multidominio automatico
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