
Olá, leitores! No post de hoje, vamos aprender como configurar um ambiente de desenvolvimento utilizando o PHP 8.2 e o Apache no Linux, mas fiquem tranquilos, essas instruções também são perfeitamente aplicáveis a máquinas Windows. A única diferença é que você precisará adequar o mapeamento de volumes conforme as especificidades do sistema operacional.
Passo 1: Executando o contêiner PHP-FPM 8.2 Primeiro, vamos executar o seguinte comando para iniciar o contêiner do PHP-FPM 8.2:
docker run -d -p 9000:9000 --restart always \
-e TIMEZONE=America/Sao_Paulo \
-v /etc/php8.2_docker:/usr/local/etc/php \
-v /var/www:/var/www/ \
-v /var/php_sessions82/:/var/lib/php/sessions/ \
--name php82 devilbox/php-fpm-8.2
Esse comando irá criar e executar o contêiner, mapeando a porta 9000 do host para a porta 9000 do contêiner, definindo o fuso horário para “America/Sao_Paulo” e vinculando os diretórios necessários.
Passo 2: Iniciando o contêiner do Apache
Agora, vamos executar o seguinte comando para iniciar o contêiner do Apache:
docker run -d --name apache -p 80:80 --restart always -v /var/www:/var/www/ -v /var/log/apache/:/var/log/apache/ -v /etc/apache2:/usr/local/apache2/conf --link php82 httpd:2.4.37
Esse comando irá criar e executar o contêiner do Apache, mapeando a porta 80 do host para a porta 80 do contêiner, vinculando os diretórios necessários e estabelecendo a conexão com o contêiner do PHP-FPM.
Passo 3: Configurando o Apache Agora, precisamos realizar algumas configurações no Apache. Acesse a pasta “/etc/apache2/sites-enabled” e crie um arquivo de configuração com o nome do seu domínio, por exemplo, “www.meudominio.com”.
Dentro do arquivo, adicione o seguinte conteúdo, adaptando-o para o seu domínio:
<VirtualHost *:80>
ServerName www.meudominio.com
ServerAlias meudominio.com www.meudominio.com
DocumentRoot /var/www/www.meudominio.com/html
CustomLog /var/log/apache/www.meudominio.com.vhost combined
ErrorLog /var/log/apache/www.meudominio.com_error.log
<Directory "/var/www/www.meudominio.com/html/">
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:fcgi://php82:9000"
</FilesMatch>
AccessFileName .htaccess
<Files .htaccess>
Order deny,allow
Deny from all
</Files>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</VirtualHost>
Nesse arquivo de configuração, você deve especificar o nome do servidor, o alias e o diretório raiz do seu site.
No exemplo fornecido, o arquivo de configuração define o servidor como “www.meudominio.com” e o alias como “meudominio.com” e “www.meudominio.com”. Certifique-se de substituir essas informações pelo seu domínio personalizado.
O próximo passo é definir o diretório raiz do seu site. No exemplo, o diretório raiz é “/var/www/www.meudominio.com/html”. Substitua essa parte pelo caminho correspondente ao diretório raiz do seu projeto.
Em seguida, são configurados os logs personalizados do Apache. Os logs de acesso serão registrados em “/var/log/apache/www.meudominio.com_log.vhost” e os logs de erros em “/var/log/apache/www.meudominio.com_error.log”. Você pode personalizar esses caminhos de acordo com suas preferências.
Dentro da tag <Directory></Directory>
, é definida a configuração para o diretório raiz do seu site. No exemplo, estão configuradas algumas opções, como permitir a sobreposição de configurações através do arquivo .htaccess
, permitir todas as solicitações e definir as permissões corretas. Certifique-se de ajustar essas configurações de acordo com as necessidades do seu projeto.
Na seção <FilesMatch \.php$></FilesMatch>
, é especificado o tratamento das requisições PHP pelo PHP-FPM. O Apache irá encaminhar as solicitações PHP para o contêiner “php82” na porta 9000, onde o PHP-FPM está sendo executado.
A partir daí, são realizadas algumas configurações adicionais, como definir o nome do arquivo de acesso como .htaccess
e negar o acesso a esse arquivo.
Por fim, é ativada a reescrita de URLs e configurada uma regra de segurança para bloquear os métodos de requisição “TRACE” e “TRACK”.
Lembre-se de salvar o arquivo de configuração com as alterações feitas e reiniciar o contêiner do Apache para que as configurações entrem em vigor.
Espero que este passo a passo tenha sido útil para configurar o ambiente com PHP 8.2 e Apache usando Docker. Aproveite seu novo ambiente de desenvolvimento e comece a criar projetos incríveis!