Como instalar o Apache num VPS e criar um virtual host

VPS e ServidoresSites e aplicações··· 994 visualizações· 3 min de leitura

No Ubuntu ou Debian, instala-se o Apache com sudo apt install apache2, escreve-se um arquivo de site em /etc/apache2/sites-available/ com um VirtualHost que aponta para a sua pasta, ativa-se com sudo a2ensite, testa-se com sudo apache2ctl configtest e recarrega-se. No AlmaLinux ou Rocky o pacote chama-se httpd. Num VPS não gerenciado a instalação e a manutenção são suas.

Um virtual host é a forma de o Apache servir sites diferentes conforme o nome que vem no pedido. Com um só site, ainda assim vale a pena criá-lo: deixa a configuração arrumada para quando vier o segundo.

Passo a passo no Debian e Ubuntu

1 Instale. sudo apt update e sudo apt install apache2. Abra as portas 80 e 443 na firewall, se a tiver (portas e firewall num VPS).
2 Crie a pasta do site e um arquivo de ensaio: sudo mkdir -p /var/www/seudominio.tld/public.
3 Escreva o virtual host em sudo nano /etc/apache2/sites-available/seudominio.tld.conf<VirtualHost *:80>
ServerName seudominio.tld
ServerAlias www.seudominio.tld
DocumentRoot /var/www/seudominio.tld/public

<Directory /var/www/seudominio.tld/public>
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/seudominio.tld-error.log
CustomLog ${APACHE_LOG_DIR}/seudominio.tld-access.log combined
</VirtualHost>
4 Ative o site e desative o de boas-vindas. sudo a2ensite seudominio.tld.conf e sudo a2dissite 000-default.conf.
5 Ative o módulo de reescrita se a aplicação usa endereços bonitos (WordPress, Laravel): sudo a2enmod rewrite.
6 Teste e recarregue. sudo apache2ctl configtest deve responder “Syntax OK”; depois sudo systemctl reload apache2.
7 Aponte o domínio ao IP do servidor e confirme: apontar um domínio para o seu VPS. Os logs de erro ficam em /var/log/apache2/.

O que muda no AlmaLinux e no Rocky

Debian e Ubuntu AlmaLinux e Rocky Linux
Pacote e serviço apache2 httpd (systemctl enable --now httpd)
Onde pôr o site sites-available + a2ensite um arquivo .conf em /etc/httpd/conf.d/
Testar a configuração apache2ctl configtest apachectl configtest
Registros /var/log/apache2/ /var/log/httpd/
Usuário do serviço www-data apache
“AllowOverride All” permite que o .htaccess mande no site. É o que o WordPress e a maior parte das aplicações PHP esperam, mas cada pedido passa a procurar esse arquivo em cada pasta. Se controla a configuração do servidor, pode pôr as regras no próprio virtual host e deixar AllowOverride None. Para as regras de reescrita em si, veja o .htaccess em projetos PHP.
Um “403 Forbidden” logo no início é quase sempre falta do Require all granted ou uma pasta que o usuário do Apache não consegue atravessar: permissões de arquivos num VPS. No AlmaLinux ou Rocky pode ser o SELinux: SELinux e AppArmor.
Mudou só um arquivo de site? reload chega e não corta ninguém. Reserve o restart para quando instala ou remove módulos.

Instalou e o servidor deixou de responder à rede? Diga-nos o que mexeu e vemos o que está do nosso lado.

Abrir um pedido de suporte

VEJA TAMBÉM

Instalar o nginx no Ubuntu

Nginx ou Apache: qual escolher

Vários sites no mesmo VPS

Até onde vai o nosso suporte

PRODUTO RECOMENDADO

Servidor VPS com acesso root

Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde 504,00 MT/mês (plano de 3 anos, com cupom)

Ver planos
Esta resposta foi útil? Sua resposta nos ajuda a melhorar este artigo.