Migrando um antigo Wordpress para o Heroku, Amazon RDS e S3
03 Dec 2016Depois de alguns bons longos anos com o blog parado, decidi voltar a escrever e mudar o mesmo para o Heroku. Decidi utilizar o Heroku como servidor, o serviço de banco de dados da Amazon, o RDS e o S3 como servidor de arquivos.
Passos:
- Desabilite todas as extensões do Wordpress
- Faça um backup completo (Wordpress, banco de dados, uploads, etc)
- Sério faça o backup!
- Crie um repositório git
- Adicione o código do Wordpress ao seu git
- Se você quer atualizar seu Wordpress, adicione a ultima versão do Wordpress
- Não adicione as suas configurações privadas!
- Não adicione o conteúdo da pasta uploads
- Adicione seus plugins
- Adicione seu tema
- Se você quer manter a sua versão, adicione o código do seu blog atual
- Não adicione as suas configurações privadas!
- Não adicione a pasta uploads ao seu repositório
- Se você quer atualizar seu Wordpress, adicione a ultima versão do Wordpress
- Atenção com os arquivos que contém dados privados!!
- Altere seu wp-config.php
- Todas as configurações privadas devem usar getenv, essa função é responsável por pegar as informações das variaveis de ambiente no PHP
- Crie um arquivo composer.json para definir pacotes e versão do PHP
- Exemplo composer.json
- Execute
composer update
para gerar o composer.lock - Altere o seu .htaccess para fazer redirect dos uploads para o S3
- Atualize o BUCKET para o nome do seu bucket
- A regra da 5 linha é a responsável por fazer o redirect
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteRule ^wp-content/uploads/(.*)$ https://s3-us-west-2.amazonaws.com/BUCKET/uploads/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
- Faça um commit no seu git com os arquivos do seu wordpress
- Setup da Amazon
- Crie um banco de dados no RDS
- Importe o backup do seu banco de dados no RDS
- Envie seus arquivos para o S3
- Lembre-se de criar os arquivos com permissão publíca para que usuários não autenticados consigam acessar
- Setup do Heroku
- Adicione as variáveis de ambiente no Heroku com os nomes e valores que você utilizou no seu
wp-config.php
, lembre de usar as configurações para o RDS. - Atualize seu DNS no Heroku
- Envie seu código para o Heroku usando o repositório git que você criou
- Adicione as variáveis de ambiente no Heroku com os nomes e valores que você utilizou no seu
- Acesse o seu site
Se você está atualizando seu Wordpress, existem chances dos plugins que você usava não funcionarem na nova versão, então verifique se os plugins funcionam ;)
Se vocês tiverem dúvidas em algum passo específico eu posso criar um novo post com mais detalhes sobre ele, esse foi uma visão geral de como eu fiz.
Matheus