Introdução
Na Parte 2 da serie Criando um servidor web com apache e múltiplas versões do PHP, abordamos a instalação do PHP7.4, 8.2 e suas dependências. Nesta etapa final, consolidamos toda a estrutura criada nas fases anteriores e avançamos para a configuração prática dos ambientes que receberão as aplicações. O objetivo é preparar dois sites independentes, cada um com diretório próprio, permissões adequadas, Virtual Hosts dedicados e integração direta com o PHP-FPM.
A construção desta camada é fundamental para garantir previsibilidade operacional, isolamento entre projetos e padronização do ambiente de hospedagem, especialmente em cenários que exigem múltiplas versões do PHP convivendo no mesmo servidor.
Criação da estrutura de diretórios dos sites
Antes de configurar o Apache, é necessário criar os diretórios que irão armazenar os arquivos de cada aplicação. Além disso, ajustaremos permissões e propriedades, garantindo conformidade com boas práticas de ambientes Linux utilizados em produção.
Execute a ação como root:
for i in {1..2}; do mkdir -pv /var/www/html/site"$i".seudominio; doneEm seguida, defina o proprietário responsável pelos arquivos e o grupo utilizado pelo servidor web:
for i in {1..2}; do chown -R www-data:www-data /var/www/html/site"$i".seudominio; doneAplique permissões adequadas para permitir escrita controlada por usuários autorizados:
for i in {1..2}; do chmod -R 2775 /var/www/html/site"$i".seudominio; doneCrie um arquivo inicial simples para validação do ambiente:
for i in {1..2}; do echo -e "<h1>Olá Mundo</h1>" > \
/var/www/html/site"$i".seudominio/index.php ; done
Criação dos arquivos de Virtual Host
Agora iniciamos a preparação dos Virtual Hosts responsáveis por atender cada aplicação.
Primeiramente, geramos os arquivos em branco:
for i in {1..2}; do echo -e "#### Virtual Host ####" > \
/etc/apache2/sites-available/site"$i".seudominio.conf ; done
Abaixo segue o conteúdo que deve ser inserido nos dois arquivos, ajustando o ServerName para cada domínio real.
Observação importante: cada site deve possuir um domínio ou subdomínio distinto. O Apache diferencia os ambientes pelo valor de ServerName. Caso os domínios não sejam diferentes, o servidor não conseguirá identificar corretamente o site solicitado.
<VirtualHost *:80>
ServerAdmin admin@seudominio.com
ServerName seudominio1.com
DocumentRoot /var/www/html/site1.seudominio
DirectoryIndex phpinfo.php index.php
<Directory /var/www/html/site1.seudominio>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/seudominio_error.log
CustomLog ${APACHE_LOG_DIR}/seudominio_access.log combined
</VirtualHost>Para o segundo site, altere apenas:
- ServerName
- DocumentRoot
- nomes de arquivos de log
- SetHandler para a versão desejada do PHP
Validação da configuração do Apache
Após ajustar os domínios e salvar os arquivos, valide a estrutura:
apachectl configtestCaso “Syntax OK” seja exibido, prossiga para habilitar os sites.
Ativação dos Virtual Hosts
Habilite cada ambiente, observando que os nomes devem corresponder exatamente aos arquivos criados:
a2ensite site1.seudominio.conf
a2ensite site2.seudominio.conf
Desative o Virtual Host padrão para evitar conflitos:
a2dissite 000-default.confReinicie o serviço:
systemctl restart apache2Habilitação dos módulos necessários e integração com PHP-FPM
Garanta que os módulos responsáveis pela comunicação com o PHP-FPM estejam ativos:
a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpm
systemctl restart apache2Remoção de arquivos temporários
Se houver arquivos de teste como phpinfo.php, remova-os ao finalizar a configuração:
for i in {1..2}; do rm -rfv /var/www/html/site"$i".seudominio/phpinfo.php ; doneConsiderações finais
Com todos os passos executados, seu servidor está apto a hospedar múltiplas aplicações PHP de forma organizada, segura e escalável. Essa abordagem entrega previsibilidade operacional, compatibilidade com aplicações legadas e flexibilidade para projetos modernos, reduzindo custos e esforço de manutenção.
Importante: A instalação apresentada neste tutorial descreve apenas o procedimento básico para as configurações do virtual hosts. É fundamental destacar que ambientes de produção exigem configurações adicionais que não foram abordadas aqui, especialmente no que envolve segurança, hardening, otimização de desempenho, integração com outros serviços, aplicação de boas práticas corporativas e personalizações alinhadas às necessidades específicas de cada cliente.
A ausência dessas etapas pode gerar vulnerabilidades, indisponibilidade ou falhas operacionais que impactam diretamente a continuidade do negócio. Por isso, reforço a necessidade de contar com um profissional qualificado para avaliar o cenário, estruturar a arquitetura apropriada e aplicar configurações avançadas de forma segura e eficiente.
Precisa de Consultoria?
Caso a sua empresa esteja planejando implantar, modernizar ou revisar a arquitetura de hospedagem das aplicações, disponibilizo uma análise técnica gratuita para avaliar a estrutura atual, identificar riscos operacionais e propor melhorias alinhadas às boas práticas de infraestrutura.