PauloRB.dev

Desenvolvedor de Software

Como Configurar um Ambiente WordPress com Docker e phpMyAdmin | PauloRB.dev Como Configurar um Ambiente WordPress com Docker e phpMyAdmin – PauloRB.dev
Como Configurar um Ambiente WordPress com Docker e phpMyAdmin

Como Configurar um Ambiente WordPress com Docker e phpMyAdmin

Desenvolver WordPress localmente com Docker é uma maneira eficiente de criar e testar plugins, temas e personalizações. Neste artigo, vamos montar um ambiente completo usando Docker Compose, incluindo WordPress, MySQL e phpMyAdmin. Além disso, vamos mapear a pasta wp-content e o arquivo wp-config.php para facilitar o desenvolvimento.

Pré-requisitos

Antes de começar, certifique-se de ter o Docker e o Docker Compose instalados na sua máquina. Se ainda não os tem, siga as instruções oficiais:

Estrutura do Projeto

Vamos criar a seguinte estrutura de diretórios:

meu-projeto-wordpress/
├── docker-compose.yml
├── wp-content/
│ ├── plugins/
│ ├── themes/
│ ├── uploads/
├── wp-config.php
└── logs/ (opcional)

  • docker-compose.yml: Arquivo de configuração do Docker Compose.
  • wp-content/: Diretório para plugins, temas e uploads.
  • wp-config.php: Arquivo de configuração do WordPress.
  • logs/ (opcional): Diretório para armazenar logs.

Passo a Passo

1. Crie a Estrutura de Diretórios

No terminal, execute os seguintes comandos:

mkdir -p meu-projeto-wordpress/wp-content/{plugins,themes,uploads}
cd meu-projeto-wordpress
touch docker-compose.yml wp-config.php

2. Configure o docker-compose.yml

Abra o arquivo docker-compose.yml e adicione o seguinte conteúdo:

version: '3.8'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wp-content:/var/www/html/wp-content
      - ./wp-config.php:/var/www/html/wp-config.php
      - ./logs:/var/log/apache2 # Opcional: para logs do servidor
    working_dir: /var/www/html

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - db
    ports:
      - "8080:80"
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: somewordpress
    restart: always

volumes:
  db_data:

Explicação:

  • db: Container do MySQL com persistência de dados via volume (db_data).
  • wordpress: Container do WordPress com mapeamento do diretório wp-content e do arquivo wp-config.php.
  • phpmyadmin: Container do phpMyAdmin para gerenciar o banco de dados.
  • Volumes:
    • db_data: Persiste os dados do MySQL.
    • ./wp-content: Mapeia o diretório wp-content para desenvolvimento de plugins e temas.
    • ./wp-config.php: Mapeia o arquivo de configuração do WordPress.

3. Configure o wp-config.php

Abra o arquivo wp-config.php e adicione o seguinte conteúdo:

<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'wordpress');
define('DB_HOST', 'db');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

define('WP_DEBUG', true); // Ativar modo de depuração

$table_prefix = 'wp_';

if (!defined('ABSPATH')) {
    define('ABSPATH', __DIR__ . '/');
}

require_once ABSPATH . 'wp-settings.php';

Este arquivo configura a conexão com o banco de dados e ativa o modo de depuração (WP_DEBUG).

4. Inicie os Containers

No terminal, execute o comando para iniciar os containers:

-d faz com que os containers sejam executados em segundo plano.

5. Acesse o WordPress e o phpMyAdmin

  • WordPress:
    • Abra o navegador e acesse: http://localhost:8000
    • Siga o processo de instalação do wordpress
  • phpMyAdmin:
    • Acesse: http://localhost:8080
    • Use as credenciais:
      • Servidor: db
      • Usuário: wordpress
      • Senha: wordpress

6. Desenvolva Plugins e Temas

  • Plugins:
    • Crie uma pasta dentro de wp-content/plugins/ para o seu plugin, por exemplo:

mkdir -p wp-content/plugins/meu-plugin

  • Dentro dessa pasta, crie o arquivo principal do plugin (meu-plugin.php).
  • Temas:
    • Crie uma pasta dentro de wp-content/themes/ para o seu tema, por exemplo:

mkdir -p wp-content/themes/meu-tema

  • Dentro dessa pasta, crie os arquivos necessários para um tema WordPress, como style.css e index.php.

 

7. Pare os Containers (Quando Necessário)

Para parar os containers, execute:

Se quiser remover tudo, incluindo os volumes, use:

docker-compose down --volumes

Com esse ambiente Docker, você tem tudo o que precisa para desenvolver WordPress localmente. O mapeamento do diretório wp-content e do arquivo wp-config.php facilita a personalização e o desenvolvimento de plugins e temas. Além disso, o phpMyAdmin permite gerenciar o banco de dados de forma simples.

Esse setup é ideal para desenvolvedores que desejam um ambiente de desenvolvimento rápido, isolado e reproduzível. Agora é só começar a criar! 🚀

 

Mais Posts

Laravel: Trabalhando com whereHas e with de forma simples

Laravel: Trabalhando com whereHas e with de forma simples

Quando trabalhamos com Eloquent no Laravel, frequentemente precisamos realizar consultas baseadas em relacionamentos entre modelos. Para isso, o Laravel oferece... Leia mais

Definindo o Ano Atual como Valor Padrão em Migrations do Laravel

Definindo o Ano Atual como Valor Padrão em Migrations do Laravel

Ao trabalhar com migrations no Laravel, uma tarefa comum é definir valores padrão para colunas em tabelas de banco de... Leia mais

Gerando Dados Fictícios para Análise de Compras em Python

Gerando Dados Fictícios para Análise de Compras em Python

Ao realizar estudos de análise de dados ou ao testar sistemas que lidam com grandes volumes de informações, é comum... Leia mais

Primeiros Passos com Go: Criando uma Aplicação Interativa do Zero

Primeiros Passos com Go: Criando uma Aplicação Interativa do Zero

Se você está começando a aprender Go e quer fazer algo prático, vou te mostrar como criar uma aplicação básica... Leia mais