Eu usaria o suporte a Hosts virtuais baseados em nome no Apache.
Primeiro, você precisa modificar seu arquivo /etc/hosts
para adicionar alguns nomes que resolvam a sua interface de loopback local:
127.0.0.1 localhost.localdomain localhost
127.0.1.1 test1
127.0.1.1 test2
Em seguida, no seu diretório pessoal, você cria um diretório para seus sites, digamos, sites
e um subdiretório para cada um deles:
sites\
- test1\
-- apache_config
-- www\
- test2\
-- apache_config
-- www\
Cada arquivo apache_config
definiria a configuração de cada um dos seus hosts virtuais:
<VirtualHost *:80>
ServerName test1
DocumentRoot /home/username/sites/test1/www
</VirtualHost>
Então você symlink todas as configurações em /etc/apache2/sites-enabled
ln -s /home/username/sites/test1/www /etc/apache2/sites-enabled/001-test1
ln -s /home/username/sites/test2/www /etc/apache2/sites-enabled/002-test2
Reinicie o Apache.
E tecnicamente deveria ser isso - todos os seus sites e suas configurações estão no seu diretório pessoal, editáveis por você.
Eu não testei os passos, então é apenas um esboço geral, mas é onde eu começaria. Eu evitaria colocar meus arquivos de trabalho em /var/www
(ou usar o host virtual padrão do Apache em geral) e também evitaria modificar o arquivo de configuração principal do Apache ( /etc/apache2/apache2.conf
) ou o arquivo host virtual padrão (aquele em /etc/apache2/sites-enabled/000-default
).