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