quinta-feira, 19 de maio de 2016

Apache + PHP + Virtual Host


Vi como grande vantagem vhosts em meus projetos PHP, sendo uma excelente forma de criar subdominios para cada projeto e evitar riscos de varreduras indesejadas a outros sistemas no diretório padrão do apache.
Suponhamos que o domínio para o sistema seja subdominio.dominio.com.br

Podemos usar o diretório padrão do apache ou outro, como por exemplo /srv/www, fique ao seu critério.

Estou tomando como base a estrutura de diretórios do Debian, sistema operacional que uso.

Em /var/www:

$ sudo mkdir subdominio.dominio.com.br 

Em /etc/apache2/sites-available:

$ sudo vim subdominio.conf 

Dentro de subdominio.conf cole:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
ServerName subdominio.dominio.com.br
        DocumentRoot /home/lucio/sites/subdominio.dominio.com.br
        <Directory /home/lucio/sites/subdominio.dominio.com.br/>
                Options Indexes FollowSymLinks MultiViews Includes ExecCGI
                AllowOverride All
                Order allow,deny
                allow from all
                Require all granted
            AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/subdominio.dominio.com.br.error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/subdominio.dominio.com.br.access.log combined
</VirtualHost>

Veja que coloquei em Document Root e Directory o seguinte diretório:
/home/lucio/sites/subdominio.dominio.com.br

Criei um diretório sites, e dentro dele crio links simbólicos das minhas vhosts. Isso é um capricho meu, apenas para organização. Fica como sugestão, mas caso não queira pode colocar o caminho real do projeto.


Após toda configuração, entre com os comandos:

$ sudo a2ensite subdominio.conf 
$ sudo service apache2 restart 


That's all folks!