Depois de horas de testes e resolução de problemas, aqui está a solução.
Primeiro, verifique se você criou um registro A no seu gerenciador de DNS para apontar seu subdomínio "test.example.com" para o IP do servidor (isso deve levar de 24 a 72 horas para ser propagado).
Em seguida, crie seu arquivo host com o seguinte comando (observe que estou usando o Ubuntu que usa arquivos host individuais, mas você pode adicionar isso ao seu arquivo host principal):
sudo vi /etc/apache2/sites-available/test.example.com
Adicione os seguintes dados abaixo (habilitei ssl em meu sistema, que é a porta 443 e não contei com a seção ssl no final):
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /usr/share/phpmyadmin
ServerName test.example.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !test.example.com
RewriteRule (.*) [L]
<Directory /usr/share/phpmyadmin>
Options Indexes FollowSymLinks
AllowOverride None
deny from all
allow from localhost
#allow access via your IP
allow from xxxxxx.xxxxx.xxxxxxx.xxxxxxxxx/xx
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_admin_flag allow_url_fopen Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
</IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
Order Deny,Allow
Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Order Deny,Allow
Deny from All
</Directory>
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
# SSLEngine on
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed.
# SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
# SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
ErrorLog /home/user/public_html/folder/logs/error.log
LogLevel warn
CustomLog /home/user/public_html/folder/logs/access.log combined
</VirtualHost>
Uma vez feito salve o arquivo e ative seu vhost
sudo a2ensite test.example.com
Ele irá então pedir-lhe para reiniciar o Apache assim que o tiver feito, e deverá estar pronto a correr e conseguir aceder ao phpmyadmin através de "test.example.com" em oposição a "www.example.com/phpmyadmin"