Pular para o conteúdo

Final - Criando um servidor web com apache e múltiplas versões do PHP


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; done

Em 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; done​

Aplique 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; done

Crie 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 configtest

Caso “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.conf

Reinicie o serviço:

systemctl restart apache2


Habilitaçã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 apache2


Remoçã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 ; done


Consideraçõ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.


Entre em contato agora

Compartilhar esta publicação
Marcadores
Nossos blogs