Sitemap
Danilo Sibov

Danilo Sibov

Hospedar sites com BIND9 e Apache2 no Ubuntu 24.04.3 LTS

6 min readNov 29, 2025

--

Um dos melhores serviços de hospedagem de site.

Estamos realizando a configurado com o usuário root, se preferir pode add o comando “sudo” antes de cada comando.

Coletar informações de IP:

ip -c a
Press enter or click to view image in full size
Neste exemplo estamos usando aplaca ens33 com o IP 192.168.1.50

Se estiver com problemas de Rede o DNS: https://medium.com/@danilo.sibov/configurando-rede-no-ubuntu-24-04-com-netplan-37ab63ae918f

Atualizar repositório de pacotes do apt:

apt update

Instalar pacote de DNS (Bind9) e serviço de hospedagem (Apache2):

apt install apache2 bind9
Press enter or click to view image in full size
Confirmar com ENTER para continuar a instalação

1 — Configurando o BIND9 (named)

Os arquivos de configuração do BIND9 são armazenados em:

ls /etc/bind/
Press enter or click to view image in full size
Principais arquivos em amarelo

Os principais arquivos são:

/etc/bind/named.conf
/etc/bind/named.conf.options
/etc/bind/named.conf.local

Verificar servidor de cache

A configuração padrão está definida para funcionar como um servidor de cache.

Verifique se está comentado o bloco do Forwarders no named.conf.options

cat /etc/bind/named.conf.options
[...]
//forwarders{
// 8.8.8.8;
// 1.1.1.1;
};
[...]

Testar com o Dig

Se não exitir na sua distribuição instale o dnsutils para comando dig funcionar:

dig -x 127.0.0.1

Se tudo correr bem, você deverá ver uma saída semelhante a esta:

; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42676
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa. IN PTR

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 0 IN PTR localhost.
1.0.0.127.in-addr.arpa. 0 IN PTR teste.local.

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sat Nov 29 16:19:40 UTC 2025
;; MSG SIZE rcvd: 99
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sat Nov 29 16:19:40 UTC 2025
;; MSG SIZE rcvd: 99

Veja que o servidor que responder é o 127.0.0.53 devido ao DNS Stub do System Resolved — Se quiser saber mais sobre DNS Stub, segue link: https://medium.com/@danilo.sibov/configurando-rede-no-ubuntu-24-04-com-netplan-37ab63ae918f

O comando dig também pode ser usado para consultar outros domínios:

dig google.com

; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5145
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com. IN A

;; ANSWER SECTION:
google.com. 103 IN A 172.217.29.238

;; Query time: 7 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sat Nov 29 16:24:25 UTC 2025
;; MSG SIZE rcvd: 55

Se você pesquisar um nome de domínio várias vezes, deverá observar uma melhora drástica no tempo de resposta entre a primeira e a segunda consulta. Isso ocorre porque o servidor armazena a consulta em cache.

Configuração do servidor Primário (Master)

O BIND9 será configurado como o servidor primário para o domínio empresa1000.com.br . Basta substituir empresa1000.com.br pelo seu nome de domínio.

Arquivo de Zona

Para adicionar uma zona DNS ao BIND9, transformando-o em um servidor primário, basta editar o arquivo named.conf.local e adicionar ao final do arquivo:

nano /etc/bind/named.conf.default-zones
[...]# Adicionar abaixo da Zona Reversa "255.in-addr.arpa"

zone "empresa1000.com.br" {
type master;
file "/etc/bind/db-empresa1000";
};

Prefiro deixar o nome db-empresa1000 para parecer com um arquivo (didaticamento falando).

Press enter or click to view image in full size
Inserir conteudo do final do arquivo named.conf.local

Agora, copie um arquivo de zona existente como modelo:

sudo cp /etc/bind/db.local /etc/bind/db-empresa1000

Edite o arquivo db-empresa1000 e altere “localhost” pelo “domínio”:

nano /etc/bind/db-empresa1000
Press enter or click to view image in full size
Alterar “localhost” por “dominio.com.br”

Além disso, crie um registro A para ns.empresa100.com.br , o servidor de nomes neste exemplo:

;
; BIND da Empresa 1000
;
$TTL 604800
@ IN SOA empresa1000.com.br. root.empresa1000.com.br. (
20251129 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.empresa1000.com.br.
@ IN A 192.168.1.50
@ IN AAAA ::1
ns IN A 192.168.1.50
www IN CNAME ns
Press enter or click to view image in full size
Imagem de como deve ficar o db-empresa1000

Os pontos no final do domínio são extremamente importantes não remova.

Get Danilo Sibov’s stories in your inbox

Join Medium for free to get updates from this writer.

O numero de Serial é importante para registrar uma mudança

Reiniciar serviço:

/etc/init.d/named restart

Realizar testes

Vamos verificar se o serviço de DNS está respodendo:

dig www.empresa1000.com.br

; <<>> DiG 9.18.39-0ubuntu0.24.04.2-Ubuntu <<>> www.empresa1000.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20873
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.empresa1000.com.br. IN A

;; ANSWER SECTION:
www.empresa1000.com.br. 604800 IN CNAME ns.empresa1000.com.br.
ns.empresa1000.com.br. 604800 IN A 192.168.1.50

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sat Nov 29 17:36:59 UTC 2025
;; MSG SIZE rcvd: 84

Veja quem respondeu foi o 127.0.0.53 o DNS local

2 — Configurando o Apache2

O serviço já foi instalado no incio desse material

Diretório padrão:

ls /etc/apache2
Press enter or click to view image in full size
Resultado do ls

Vamos alterar conteúdos nos diretórios sites-available e sites-enable

  • sites-available: onde criar os arquivos de configuração do sites
  • sites-enable: onde estão armazenados os links dos sites ativos

Diretório onde os sites são armazenados:

/var/www/html/

Criar diretório empresa1000

mkdir /var/www/html/empresa1000

Ajustar permissões e usuário empresa1000

chown senai:root /var/www/html/empresa1000

chmod 777 /var/www/html/empresa1000

Acessar diretório empresa1000 e criar arquivo index.html

cd /var/www/html/empresa1000
echo "Primeiro Site Empresa 1000" > index.html

Sequencia de comandos:

Press enter or click to view image in full size
Retorno dos comandos

Configiruar nosso primeiros site, vamos usar arquivo de modelo 000-default.conf:

cd /etc/apache2/sites-available
cp 000-default.conf empresa1000.conf
Press enter or click to view image in full size
Veja que o arquivo foi copiado

Editar arquivo empresa1000.conf:

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

Apagar comentários com CTRL + K, ficando assim:

<VirtualHost *:80>
ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Ajustar para o empresa1000.com.br ficando assim:

<VirtualHost *:80>
ServerName www.empresa1000.com.br
ServerAdmin danilo.sibov@gmail.com
DocumentRoot /var/www/html/empresa1000/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Ativar site empresa1000.conf:

a2ensite empresa1000.conf
Press enter or click to view image in full size
Retorno do comando

Serviço já recarregou, mas se precisar reiniciar serviço do Apache2

/etc/init.d/apache2 reload # ou /etc/init.d/apache2 restart
# Ver funcionamento /etc/init.d/apache2 status

/etc/init.d/apache2 status
● apache2.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
Active: active (running) since Sat 2025-11-29 18:42:53 UTC; 3s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 5042 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 5046 (apache2)
Tasks: 55 (limit: 4548)
Memory: 5.2M (peak: 5.6M)
CPU: 23ms
CGroup: /system.slice/apache2.service
├─5046 /usr/sbin/apache2 -k start
├─5048 /usr/sbin/apache2 -k start
└─5049 /usr/sbin/apache2 -k start

Nov 29 18:42:53 webserver systemd[1]: Starting apache2.service - The Apache HTTP Server...
Nov 29 18:42:53 webserver apachectl[5045]: AH00558: apache2: Could not reliably dete…ssage
Nov 29 18:42:53 webserver systemd[1]: Started apache2.service - The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
Press enter or click to view image in full size
Retorno do Status — com Active (running) informando que está OK

Tente navegar localmente com o Lynx

apt install lynx #Navegador por console

Abrir o site com Lynx

lynx www.empresa1000.com.br
Press enter or click to view image in full size
Site funcionando — Para sair aperte “q” , depois “y”

--

--