
Vamos falar sobre um erro comum em projetos WordPress e algumas boas práticas.
Vamos ver algumas ferramentas para iniciantes e qual o caminho para outro nível.
Links e Materiais do Curso encontram-se nesta aula.
Veremos conceitos básicos do Docker de forma bem superficial antes de entrarmos na prática.
Criaremos um docker-compose.yml com nosso wordpress e banco de dados e entenderemos alguns conceitos do Docker.
Criaremos um Dockerfile e estenderemos a imagem do wordpress, instalando wp-cli e xdebug. Também veremos como configurar o XDebug e adicionar arquivos de configuração.
Comandos usados nesta aula:
• php -i | grep xdebug
• php -v
• service apache2 reload
• docker-php-ext-enable xdebug
• php --ini
Vamos adicionar o nginx com https para servir nosso wordpres/woocommerce localmente no Docker.
Palavra rápida sobre Docker e XDebug no Windows e como esta seção foi gravada.
Requisitos de versão do windows, e pre-requisitos para trabalhar com Docker e WordPress no Windows com WSL2.
Comandos
wsl --install
Índice
• 00:05 - Pre-requisitos de versão
• 00:32 - Instalando WSL2
• 01:30 - Ativando Hyper-V e Containeres
Vamos definir um usuário e senha e checar versão WSL.
Comandos
wsl -l -v
wsl --set-default-version Ubuntu 2
Índice
• 00:05 - Definindo user e senha
• 00:28 - Checando versão
Vamos baixar e instalar o Docker para Windows.
Índice
• 00:05 - Baixando e instalando Docker
• 01:30 - Ajustes
Vamos ver como o Xdebug funciona e como configurar seu projeto com Docker, WSL 2 no Windows (e em outros sistemas).
Comandos:
php -v
docker-php-ext-enable xdebug
service apache2 reload
php -i | grep -i xdebug
php --ini
Vamos ver como configurar o XDebug no VsCode (Visual Studio Code), assim como fizemos na aula anterior.
Comandos
New-NetFirewallRule -DisplayName “WSL” -Direction Inbound -InterfaceAlias “vEthernet (WSL)” -Action Allow
Se é assim que você cuida do seu código-fonte, está fazendo errado.
Comandos básicos do git e como iniciar nosso projeto
Comandos desta aula
git init
git add *
git commit -m “Primeiro commit”
Vamos ver como o github funciona, seus recursos, e como criar e cadastrar a nossa chave para clonar repositórios públicos e privados via ssh.
Comandos desta aula
git log - para ver alterações
git clone /caminho/do/projeto/.git nomedapasta -b nomedabranch
ssh-keygen - para gerar a chave
Entenda como puxar e enviar arquivos para o github e à partir dele, ou de qualquer outro repositório remoto.
Comandos desta aula
git remote -v - para mostrar as origens remotas
git remote add origin git@github.com:magenteiro/wptmp.git - para adicionar uma origem remota
git push -u origin master - para subir todos os branches e históricos do local para o "origin" adicionado anteriormente
Vamos ver como apagar, adicionar e modificar arquivos com git. Uma boa revisão.
Comandos desta aula
git log - para ver o que alterou
git status
git commit -m "Alterando oi.txt e removendo readme"
git push origin master
git add -f arquivoignorado.ext
Veja como configurar permissões de um projeto no github e como as colaborações funcionam.
Vamos ver algumas alternativas para não ter que lembrar de todos os comandos git.
Vamos ver um dos padrões de fluxo de trabalho mais conhecidas na prática: o git flow.
Comandos desta aula:
git checkout -b nova-branch (cria nova branch à partir da branch atual)
git push origin develop (sobe alterações da branch atual para origin develop)
git checkout -b feature/123-renomeandoOiParaPhp (nova branch à partir da branch atual)
git add oi.php
git commit -m "Oi.txt renomeado para oi.php conforme solicitado"
git push origin feature/123-renomeandoOiParaPhp
git checkout develop
git merge feature/123-renomeandoOiParaPhp
git push origin develop
Vamos integrar nosso projeto e o git com um gerenciador de projetos gratuito.
Comandos
git pull origin develop
git checkout -b feature/1234-descricaoDaAlteracao
git add oi.php
git commit -m "Alteração com novo método no oi.php realizada"
git push origin feature/1234-descricaoDaAlteracao
Vamos ver como evitar que plugins e temas sejam instalados, modificados ou atualizados em outros ambientes que não o de desenvolvimento.
Adicione ao seu wp-config.php
define ('DISALLOW_FILE_MODS', true);
define ('DISALLOW_FILE_EDIT', true);
Crie uma chave privada e habilite acesso via ssh no cPanel da sua hospedagem.
Comandos
ssh -i wptmp.pub usuario@ip -p 65002 (ou outra porta)
Alguns comandos básicos do SSH e como enviar arquivos pra lá.
Comandos
ls -lsha
cd diretorio
cd ..
pwd
copy arquivoOrigem arquivoDestino
ls oi*
scp -i chave.pub -P 65002 arquivolocal.txt user@ip:/caminho/no/servidor
Criaremos um dominio de produção e um domínio para homologação de nosso projeto.
Configure uma nova chave de deploy específica para este projeto e clone o branch master e develop nos seus respectivos ambientes.
Comandos desta aula:
ssh-keygen
cat wpcurso.pub
git clone git@github.com:magenteiro/wptmp.git .
git -c core.sshCommand="ssh -i ~/.ssh/<chave_privada>" clone git@github.com:<user>/<repo>.git .
git config core.sshCommand "ssh -i /caminho/chave/privada -o 'IdentitiesOnly yes'"
git -c core.sshCommand="ssh -i ~/.ssh/<chave_privada>" clone git@github.com:<user>/<repo>.git . -b develop
Vamos criar duas bases de dados: um para produção e outro para staging, e dois usuários com acessos apenas à estas bases.
Para criar uma nova base e um novo usuário via linha de comando:
mysql -h HOST -u USUARIO_ROOT -pSENHA_ROOT -e "CREATE DATABASE NOME_NOVA_BASE;"
mysql -h HOST -u USUARIO_ROOT -pSENHA_ROOT -e "CREATE USER 'NOME_NOVO_USER'@'HOST' IDENTIFIED BY 'SENHA_NOVO_USR';"
mysql -h HOST -u USUARIO_ROOT -pSENHA_ROOT -e "GRANT ALL ON NOME_NOVA_BASE.* TO 'NOME_NOVO_USER'@'HOST';"
Deixe os dois ambientes com https em 2 minutos com uso do Let's Encrypt.
Comandos desta aula:
wp core download --locale=pt_BR
wp config create --dbname=clairema_wptmp --dbuser=clairema_wptmp --dbhost=localhost --dbpass="clairema_wptmp_pass"
wp core install --url="https://wptmp.ricardomartins.net.br" --title="WP Curso" --admin_user=magenteiro --admin_password="aluno123" --admin_email="magenteiro@magenteiro.com" --skip-email
Fluxo real do pedido de um cliente para instalar 2 plugins. Faremos isso em ambiente local, testaremos em homologação, subiremos em produção. Tudo integrado com nosso gerenciador de projetos.
Nem toda alteração feita em um site WordPress altera arquivos. Versionar alterações em banco é o desafio desta seção.
Para banco de dados muito pequenos, podemos exportar com phpMyAdmin. Mas ele não vai resolver metade dos problemas reais.
Vamos ver como usar o mysqldump e tar para exportar e compactar bases de dados mysql muito grandes.
Comandos desta aula:
• mysqldump -hlocalhost -uclairema_wptmp -p --opt clairema_wptmp > aquivo-db.sql
• tail aquivo-db.sql (para ver o final de um arquivo)
• tar czvf aquivo-db.sql.tar.gz aquivo-db.sql (para compactar)
• tar xzvf aquivo-db.sql.tar.gz (para descompactar)
Esquece o mysqldump se você só trabalha com wordpress.
Comandos desta aula
wp db export
Vamos importar um arquivo sql e realizar substituições em todas as tabelas.
Comandos:
wp db import db.sql
wp search-replace 'termo a substituir' 'novo termo'
Gere um arquivo SQL pronto para ser importado em outro ambiente, sem precisar fazer replaces.
Vamos ver como podemos versionar as configurações de temas e plugins ativos e inativos em nossos sites.
Comandos
wp plugin list
wp theme list
wp plugin list --format=json --status=active,inactive > .github/workflows/plugins.json
Dar manutenção e saber o que precisa ser atualizado e quais sites estão funcionando pode ser desafiador quando se tem muitos clientes. Conheça algumas ferramentas que prometem resolver tudo isso.
Você cria ou gerencia sites WordPress ou lojas WooCommerce?
Neste curso você aprenderá a gerenciar de forma profissional seus códigos-fonte e banco de dados através de ferramentas e técnicas profissionais.
Aprenda o que precisa para ter eficiência no controle no histórico e monitoramento das alterações feitas por você e seu time (com git), e como fazer deploy automático.
Além disso ainda veremos ferramentas que nos permitem ter o total controle de múltiplas instalações WordPress/WooCommerce de forma profissional.
Ao final do curso você saberá como realizar várias tarefas de um administrador/desenvolvedor de forma mais rápida, segura e eficaz.
Com isso, poderá elevar o valor oferecido a seus clientes e consequentemente, seu valor de mercado.
Este não é um curso básico ou de desenvolvimento para WordPress.
Mas sim, um curso para quem desenvolve ou administra uma ou mais instâncias WordPress, e deseja:
Ter mais controle e histórico sobre as alterações realizadas
Integrar essas alterações com histórias do seu gerenciador de projetos
Monitorar alterações indevidas realizadas pelo seu time ou por falhas de segurança
Ter um ambiente profissional de desenvolvimento e parar de fazer alterações direto em produção, torcendo pra não destruir o site/loja
Deseja ter ambientes de desenvolvimento, testes e produção separados e profissionais
Deseja monitorar a saúde de mais de um site WordPress em um único lugar
Ter uma visão diferente sobre o desenvolvimento para WordPress.