De acordo com a documentação do Apache, o ServerName requer um FQDN . localhost name não é um nome de domínio totalmente qualificado.
Sugiro alterar sua configuração de vhost:
<VirtualHost *:80>
DocumentRoot /opt/lampp/htdocs
ServerName firstSite.localhost
ServerAlias www.firstSite.localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /home/mirjalal/localhost2
ServerName secondSite.localhost
ServerAlias www.secondSite.localhost
<Directory "/home/mirjalal/localhost2">
Options +Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Onde VirtualHost *: 80 significa que o apache escuta em qualquer endereço IP, porta 80 e que você está definindo " Hosts virtuais baseados em nome ". Nome_do_servidor agora o FQDN consiste em duas partes: o nome do host e o nome do domínio. DocumentRoot define o diretório do qual o httpd servirá arquivos.
Eu adiciono a diretiva Diretório porque eu acho que o servidor principal (definido no apache2.conf) não faz isso para o diretório / home / mirjalal / localhost2.
Salve esta diretiva em /etc/apache2/sites-available/myWebSite.conf
Abra seu / etc / hosts e altere o nome do host:
127.0.0.1 localhost
127.0.1.1 mirjalal-PC
127.0.0.1 firstSite.localhost
127.0.0.1 secondSite.localhost
Agora, estamos prontos para iniciar um novo site e impedir que vhosts padrão escutem o localhost :
a2ensite myWebSite
a2dissite 000-default
service apache2 reload
Para verificar, coloque um arquivo index.html simples em / home / mirjalal / localhost2 e tente http://secondSite.localhost/