Como instalar o Apache2 e criar Virtual Hosts no Ubuntu ou Debian

O servidor Apache 2 é um servidor http muito robusto e seguro, ele será a base do servidor HTTP, veja como instalar e criar Virtual Hosts

Servidor Apache2

O Apache 2 é responsável por gerenciar as solicitações recebidas por navegadores web e responde-las de forma adequada, encaminhando para os sites e aplicações que estão no servidor ou até mesmo executando scripts através da integração de módulos. Estes módulos são recursos característicos do Apache2, onde é possível ativa-los quando necessitar de determinada função como proxy, SSL/TLS, ou até mesmo alguma linguagem de programação, permitindo que o Apache2 possa ser utilizado de forma flexível. 

CAVALIERI (2016)

Neste tutorial iremos utilizar um exemplo do site "tecdicas.com" com o usuário "renan", portanto para todos os códigos, modifique os usuários e caminhos para que fiquem de acordo com o seu site.

Para instalar o Apache2, execute os comandos abaixo (um por vez, como super usuário):

apt-get update
apt-get install apache2

Após a instalação você terá que criar um novo Virtual Host, que é a maneira mais fácil e organizada para publicar seu site, pois caso você necessite utilizar mais sites no mesmo servidor é só realizar o mesmo procedimento e ambos os sites irão funcionar lado a lado sem conflitos, desde que estejam em endereços ou portas diferentes.

Para iniciar o procedimento de criação do VirtualHost, crie um arquivo de configurações no diretório "sites-available" do Apache2 usando comando abaixo:

nano /etc/apache2/sites-available/tecdicas.conf

Em seguida copie o conteúdo abaixo, modificando para seu site.

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /home/renan/tecdicas.com/www
    ServerName tecdicas.com
    ServerAlias www.tecdicas.com
    ErrorLog /home/renan/tecdicas.com/logs/error.log
    CustomLog /home/renan/tecdicas.com/logs/access.log combined
</VirtualHost>

Pressione Ctrl+X, digite Y e pressione ENTER para salvar.

Note que o caminho do site foi apontado para /home/renan/tecdicas.com/www, neste caso este diretório deve existir para que as configurações funcionem.

Em nosso exemplo, o usuário "renan" foi criado anteriormente, caso não possua um usuário, poderá criar um usuário no Debian para utilizar sua pasta pessoal para guardar os arquivos de seu site.

adduser renan -shell /bin/false -home /home/renan

Caso seu site trabalhe com uploads realizados por algum script, é necessário atribuir seu usuário ao grupo "www-data" e permitir o acesso deste grupo as pastas de seus arquivos. Note que isso fará com que outros usuários que estejam no grupo "www-data" também possam ver ou editar seus arquivos, o que não é um comportamento desejado em servidores compartilhados com outras pessoas.

usermod -a -G www-data renan

E por fim, basta criar os diretórios necessários para o Virtual Host e atribuir as permissões ao Apache2.

mkdir /home/renan/tecdicas.com
mkdir /home/renan/tecdicas.com/www
mkdir /home/renan/tecdicas.com/logs
chown -R renan:www-data /home/renan/tecdicas.com/*

Para ativar seu servidor, use os comandos abaixo.

a2ensite tecdicas.conf
service apache2 restart

Aponte seu domínio para o IP do seu servidor e envie uma página "index.html" com qualquer conteúdo para seu site através do servidor FTP, apenas para saber se está funcionando corretante. Espere alguns minutos após apontar seu domínio para o IP de seu servidor, e tente acessa-lo.

Forbidden / Permission Denied

Caso tenha algum erro relacionado à acesso negado (You don't have permission to access / on this server), significa que o Apache2 está bloqueando seu site por estar fora do diretório padrão. Para corrigir, abra as configurações do Apache2 com o comando.

nano /etc/apache2/apache2.conf

E acrescente o seguinte código, modificando para o caminho da pasta "www" de seu site.

<Directory /home/renan/tecdicas.com/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Reinicie o servidor do Apache2 para recarregar as configurações e tente novamente.

service apache2 restart

Ativação de módulos

Para ativar um módulo no Apache2, utilize o comando "a2enmod" e em seguida informe o nome do módulo. No exemplo a seguir ativaremos os módulos mais comuns requeridos por muitas aplicações como o Wordpress.

a2enmod headers
a2enmod rewrite
a2enmod expires
service apache2 restart

Usando TLS no Virtual Host

Caso deseje utilizar o protocolo TLS (https) em seu site, abra novamente o arquivo de configurações e acrescente as seguintes linhas.

nano /etc/apache2/sites-available/tecdicas.conf
<VirtualHost *:443>
    ServerAdmin [email protected]
    DocumentRoot /home/renan/tecdicas.com/www
    ServerName tecdicas.com
    ServerAlias www.tecdicas.com
    ErrorLog /home/renan/tecdicas.com/logs/error.log
    CustomLog /home/renan/tecdicas.com/logs/access.log combined
    SSLEngine on
    SSLCertificateKeyFile /home/renan/tecdicas.com/certificados/cert.key
    SSLCertificateFile /home/renan/tecdicas.com/certificados/www_tecdicas_com_br.crt
    SSLCertificateChainFile /home/renan/tecdicas.com/certificados/COMODO.ca-bundle
    SSLProtocol ALL -SSLv2 -SSLv3
    SSLHonorCipherOrder On
    SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5
    SSLCompression Off
</VirtualHost>

Vale lembrar que para utilizar este método é necessário que possuir os certificados SSL. Caso não possua mas tenha interesse de investir na segurança de seu site, veja nosso artigo sobre certificados SSL/TLS.

Altere os caminhos de "SSLCertificateKeyFile", "SSLCertificateFile" e "SSLCertificateChainFile" para os arquivos que lhe foram fornecidos durante a compra de um certificado SSL.

Em seguida reinicie novamente o servidor.

service apache2 restart

Esta técnica utiliza criptogramas seguros e desativam protocolos obsoletos, o que fará com que seu servidor melhore de forma significativa sua segurança enquanto estiver usando TLS, prevenindo ataques conhecidos com Man in The Middle.

Caso tenha interesse em pesquisar mais sobre segurança de servidores, confira nossa análise de vulnerabilidades em sistemas web com PHP.

Desativando um site

Para remover um site que não é mais necessário, apenas execute o comando

a2dissite tecdicas.conf

Caso tenha problemas durante o tutorial, verifique também o log de erros criado pelo Apache2 em busca de solução de problemas. Se o Apache2 não estiver iniciando, é um indicativo de que há configurações inválidas, como diretórios faltando ou caminhos errados.

 

Índice: Como criar uma hospedagem VPS completa no Ubuntu ou Debian:

Tutoriais e artigos recomendados


Comentários



Voltar ao topo
Aguarde..