Pular para o conteúdo principal

Criando Virtual Host no Apache Instalado Via Compilação

Este post é uma continuação de Compilando e Configurando o APACHE 2.4 com HTTP/2 e HTTPS

Atenção: Há formas diferentes de se adicionar um virtual host no Apache, isso dependerá muito da maneira como ele foi instalado e o local dos arquivos de instalação. Caso tenha instalado o Apache via apt-get ou outro gerenciador de pacotes, esse não é o melhor método para você, mas pode ser que ajude a tirar alguma dúvida.

Bora lá...

1) Crie um novo diretório de projeto
sudo mkdir /var/www
sudo mkdir /var/www/NovoProjeto
sudo mkdir /var/www/NovoProjeto/site
sudo mkdir /var/www/NovoProjeto/logs
2) Configure usuário e grupos das pastas
sudo chown root:root /var/www/NovoProjeto
sudo chown apache:www /var/www/NovoProjeto/site
sudo chown apache:www /var/www/NovoProjeto/logs
3) Configure as permissões das pastas
Para ambiente de desenvolvimento utilize:
sudo chmod 755 /var/www/NovoProjeto
sudo chmod 2777 /var/www/NovoProjeto/site
sudo chmod 2777 /var/www/NovoProjeto/logs
Para ambiente de produção utilize:
sudo chmod 755 /var/www/NovoProjeto
sudo chmod 2775 /var/www/NovoProjeto/site
sudo chmod 2775 /var/www/NovoProjeto/logs
4) Crie um arquivo de configuração do virtual host na pasta /usr/local/apache/conf/extra
Eu costumo utilizar o editor de texto joe, mas você pode utilizar qualquer outro.
sudo joe /usr/local/apache/conf/extra/novoprojeto.conf
Para criar um acesso sem o uso de https cole o seguinte conteúdo no arquivo:
<VirtualHost *:80>

ServerName novoprojeto.des
ServerAlias www.novoprojeto.des

# Directory settings
DocumentRoot /var/www/NovoProjeto/site
<Directory /var/www/NovoProjeto/site>
 AllowOverride All
 Require all granted
 Options +FollowSymLinks -Indexes -Includes
</Directory>

# Logging
ErrorLog "/var/www/NovoProjeto/logs/httpd-error.log"
CustomLog "/var/www/NovoProjeto/logs/httpd-access.log" common

</VirtualHost>
Para criar um acesso seguro com https utilize o seguinte conteúdo:
<IfModule mod_ssl.c>
<VirtualHost *:443>
 ServerName novoprojeto.des
 ServerAlias www.novoprojeto.des
 DocumentRoot "/var/www/NovoProjeto/site"
  <Directory /var/www/NovoProjeto/site/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Require all granted
 </Directory>
 SSLEngine on
 SSLCipherSuite EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SH
 SSLProtocol TLSv1 TLSv1.1 TLSv1.2
 SSLCertificateFile /usr/local/apache/conf/ssl/server.crt
 SSLCertificateKeyFile /usr/local/apache/conf/ssl/server.key
 ErrorLog "/var/www/NovoProjeto/logs/httpd-error.log"
 CustomLog "/var/www/NovoProjeto/logs/httpd-access.log" common
 </VirtualHost>
</IfModule>
5) Adicione o arquivo do virtual host ao Apache
Abra o arquivo /usr/local/apache/conf/httpd.conf e insira no final do arquivo a seguinte linha:
 Include conf/extra/novoprojeto.conf
6) Crie um arquivo "Hello World!" dentro da pasta site
 sudo echo "Hello world!" > /var/www/NovoProjeto/site/index.html
7) Crie uma rota para o ServerName no Windows
Essa parte é necessária somente se você estiver utilizando o linux em uma máquina virtual no windows.
1º) clique no menu iniciar do windows
2º) Digite cmd ou procure pelo Prompt de Comandos
3º) Quando localizar o ícone do prompt de comandos clique com o botão direito do mouse e depois em executar como administrador.

4º) Execute o seguinte comando no terminal do Windows:
notepad c:\Windows\System32\drivers\etc\hosts
5º) Vá para o final do arquivo e adicione o ip da máquina virtual seguido do nome de host especificado no arquivo do virtual host criado anteriormente, exemplo:
192.168.46.150 novoprojeto.des
6º) Salve e feche o arquivo
7º) No linux, reinicie o apache:
sudo systemctl restart apache
8º) Abra o navegador e teste digitando o endereço de domínio especificado
Não esqueça de digitar o http ou https (depende de qual congiguração você escolheu), exemplo:
http://novoprojeto.des

Nota:
Você pode ter as duas configurações http e https no mesmo arquivo de virtual host, mas não faz muito sentido. Caso você tenha apenas uma a outra não irá funcionar.
O correto é você forçar o uso de https através de um arquivo .htaccess na raiz da pasta "site".
Em caso de dúvidas deixe seu comentário que tentarei ajudar!

Comentários