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
Desenvolvedor de Software
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.
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:
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.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
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:
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.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.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
).
No terminal, execute o comando para iniciar os containers:
docker-compose up -d
O -d
faz com que os containers sejam executados em segundo plano.
db
wordpress
wordpress
wp-content/plugins/
para o seu plugin, por exemplo:
mkdir -p wp-content/plugins/meu-plugin
meu-plugin.php
).wp-content/themes/
para o seu tema, por exemplo:
mkdir -p wp-content/themes/meu-tema
style.css
e index.php
.
Para parar os containers, execute:
docker-compose down
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! 🚀
Quando trabalhamos com Eloquent no Laravel, frequentemente precisamos realizar consultas baseadas em relacionamentos entre modelos. Para isso, o Laravel oferece... Leia mais
Ao trabalhar com migrations no Laravel, uma tarefa comum é definir valores padrão para colunas em tabelas de banco de... Leia mais
Ao realizar estudos de análise de dados ou ao testar sistemas que lidam com grandes volumes de informações, é comum... Leia mais
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