Hospedar sites com BIND9 e Apache2 no Ubuntu 24.04.3 LTS
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 aSe 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 updateInstalar pacote de DNS (Bind9) e serviço de hospedagem (Apache2):
apt install apache2 bind91 — Configurando o BIND9 (named)
Os arquivos de configuração do BIND9 são armazenados em:
ls /etc/bind/Os principais arquivos são:
/etc/bind/named.conf
/etc/bind/named.conf.options
/etc/bind/named.conf.localVerificar 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.1Se 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: 99Veja 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: 55Se 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).
Agora, copie um arquivo de zona existente como modelo:
sudo cp /etc/bind/db.local /etc/bind/db-empresa1000Edite o arquivo db-empresa1000 e altere “localhost” pelo “domínio”:
nano /etc/bind/db-empresa1000Alé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 nsOs 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 restartRealizar 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: 84Veja 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/apache2Vamos 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/empresa1000Ajustar permissões e usuário empresa1000
chown senai:root /var/www/html/empresa1000
chmod 777 /var/www/html/empresa1000Acessar diretório empresa1000 e criar arquivo index.html
cd /var/www/html/empresa1000
echo "Primeiro Site Empresa 1000" > index.htmlSequencia de comandos:
Configiruar nosso primeiros site, vamos usar arquivo de modelo 000-default.conf:
cd /etc/apache2/sites-available
cp 000-default.conf empresa1000.confEditar arquivo empresa1000.conf:
nano /etc/apache2/sites-available/empresa1000.confApagar 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.confServiç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.Tente navegar localmente com o Lynx
apt install lynx #Navegador por consoleAbrir o site com Lynx
lynx www.empresa1000.com.br







