Com a finalidade de tornar o apache2 em um servidor web com multiplos websites instalados vamos agora fazer a configuração de um novo virtual host, ou seja um servidor web virtual dentro de um servidor apache2.

Em nosso exemplo vamos criar um arquivo de configuração para uso do phpmyadmin. Edite / crie o arquivo /etc/apache2/sites-available/phpmyadmin com o conteúdo abaixo.

#### Arquivo de Configuração do PHPMyadmin ####
<VirtualHost *:80>
#se for SSL habilite a linha abaixo
#<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName phpmyadmin.dominio.com
    ServerAlias phpmyadmin.dominio.com
    DocumentRoot /var/www/phpmyadmin

    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    
    <Directory /var/www/phpmyadmin>
        Options Indexes
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog /var/log/apache2/error_phpmyadmin.dominiocom.log
    LogLevel warn
    CustomLog /var/log/apache2/access_phpmyadmin.dominio.com.log combined

    #se for SSL habilite as linhas abaixo
    #SSLEngine on
    #SSLCertificateFile “/etc/apache2/ssl/phpmyadmin.crt”
    #SSLCertificateKeyFile “/etc/apache2/ssl/phpmyadmin.key”
</VirtualHost>
#### Final do Arquivo de configuração

Visando dar mais segurança ao servidor virtual edite o arquivo .htaccess da aplicação phpmyadmin, adicione no final do arquivo com o seguinte comando: echo”Options -Indexes”>>/var/www/phpmyadmin/.htaccess

Exemplo do arquivo .htaccess

AuthType Basic
AuthName “WebSite”
AuthUserFile “/var/www/phpmyadmin/.htpasswd”
require valid-user
Options -Indexes

Reload no Servidor web /etc/init.d/apache2 reload Já para remover informações do apache como versão e SO no arquivo /etc/apache2/conf.d/security localize neste arquivo estas duas linhas e deixe como no exemplo abaixo:

ServerSignature Off
#ServerSignature On

A partir de agora adicione no Servidor de DNS um entrada para phpmyadmin.dominio.com com valor no ip do servidor.

Se for usar com HTTPs, use as configurações abaixo. Criação de um certificado de segurança para este dominio:

cd /etc/apache2/
mkdir ssl
cd ssl

Vamos criar a chave privada: openssl genrsa -des3 -out phpmyadmin.key 2048

Agora vamos criar o CSR (Requisição de certificado de assinatura), utilizando a chave privada: openssl req -new -key phpmyadmin.key -out phpmyadmin.csr

Criar o Certificado: openssl x509 -req -in phpmyadmin.csr -signkey phpmyadmin.key -out phpmyadmin.crt

Habitar o modulo ssl: cd /etc/apache2/mods-available/ && a2enmod ssl