6 min read

Migrando meu blog do WordPress para Ghost

Tutorial de como migrei meu blog do Wordpress para o Ghost. Passo a passo.
Migrando meu blog do WordPress para Ghost

Desde 2017 eu vinha utilizando o WordPress como CMS para o Blog. Depois de muitas dificuldades em relação a desempenho e hosting, decidi em 2022 migrar para o Ghost.

O Ghost é um aplicativo poderoso para criadores de novas mídias publicarem, compartilharem e expandirem seus negócios em torno de seu conteúdo. Ele vem com ferramentas modernas para criar um site, publicar conteúdo, enviar boletins informativos e oferecer assinaturas pagas aos membros.

Por que migrar?

O meu maior fator foi desempenho, na antiga hospedagem (SAN) o desempenho estava afetado, por questões do Wordpress e também da infraestrutura. O desenvolvimento do Ghost é utilizado as melhores e últimas linguagens de programação, por isso é fácilmente superior aoWordpress.

Outro fator foi o design, o Ghost possui temas minimalistas e era o que eu busca. Um padrão de postagens com imagem e conteúdo, bem simples e fácil de ler.

Pré-requisitos

Nesse post vou explicar como foi a migração do Wordpress para o Ghost. Desde a instalar, configurar e executar o Ghost no servidor Ubuntu 20.04 até a migração dos conteúdos.

Este é o guia para auto-hospedagem do Ghost usando a stack recomendada do Ubuntu 20.04.

A instalação de produção oficialmente recomendada requer a seguinte stack:

  • Ubuntu 16.04, Ubuntu 18.04 ou Ubuntu 20.04
  • NGINX (mínimo de 1.9.5 para SSL)
  • Uma versão compatível do Node.js
  • MySQL 5.7 ou 8.0
  • Systemd
  • Um servidor com pelo menos 1 GB de memória
  • Um nome de domínio registrado

Lembrando que antes de começar, você deve configurar um registro A no DNS do seu domínio, apontando para o endereço IP do servidor. Isso deve ser feito com antecedência para que o SSL possa ser configurado durante a configuração.

Lembre-se de ter um domínio apontando para o seu servidor.

Backup do Wordpress

Antes de tudo é importante fazer os downloads dos conteúdos do seu Wordpress. Para isso foi simples, baixei o plugin do Ghost. Ele permite a migração dos conteúdos. Depois de instalado eu acessei:

Ferramentas > Export to Ghost.

Na opção de "Download to Ghost File" acontenceu o esperado, time-out no servidor antigo. Isso já estava na documentação oficial do Ghost.

Em alguns casos, sua instalação do WordPress não será capaz de lidar com a quantidade de conteúdo que está sendo exportado, seja porque há muitos dados ou porque a instalação do WordPress não teve tempo suficiente para processar os dados. Se você encontrar esses problemas, clique .json abaixo do botão de download. Isso produzirá um único arquivo que conterá todas as suas postagens, páginas e tags e pulará a etapa de download da imagem.

Então optei pelo arquivo .JSON.

Também fiz o download via Gerenciador de Arquivo do cPanel da pasta Uploads. Isso será utilizado no final da instalação.

Configuração do servidor

Esta parte garantirá que todos os pré-requisitos sejam atendidos para a instalação do Ghost-CLI.

O servidor que utilizei foi da AWS junto com o Cloudflare.

Criar um novo usuário

Abra seu terminal e faça login no seu novo servidor como usuário root:

# Loga via SSH
ssh [email protected]_server_ip

# Cria um novo usuário
adduser <user>
# Adiciona o usuário ao grupo root para liberar acessos de admin
usermod -aG sudo <user>

# Loga com nova usuário
su - <user>

Atualizar pacotes

Certifique-se de que as listas de pacotes e os pacotes instalados estejam atualizados.

# Atualiza lista de pacotes
sudo apt-get update

# Atualiza pacotes instalados
sudo apt-get upgrade

Siga as instruções para inserir a senha que você acabou de criar na etapa anterior.

Instale o NGINX

O Ghost usa um servidor NGINX e a configuração SSL requer NGINX 1.9.5 ou superior.

# Instala o NGINX
sudo apt-get install nginx

Se estiver ufw ativado, o firewall permite conexões HTTP e HTTPS. Abra o Firewall:

sudo ufw allow 'Nginx Full'

Instalar MySQL

Em seguida, você precisará instalar o MySQL para ser usado como banco de dados de produção.

# Instala o MySQL
sudo apt-get install mysql-server

MySQL no Ubuntu 18.04 ou 20.04

Se você estiver executando o Ubuntu 18.04 ou 20.04, é necessária uma senha para garantir que o MySQL seja compatível com o Ghost-CLI. Isso requer alguns passos extras!

# Inicie com
sudo mysql

# Agora atualiza a senha com
# Altere o 'password' com sua senha
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

# Saia do MySQL
quit

# e logue com o usuário novamente
su - <user>

Instalar o Node.js

Você precisará ter uma versão compatível do Node instalada em todo o sistema da maneira descrita abaixo. Se você tiver uma configuração diferente, poderá encontrar problemas.

# Adiciona o repositório do Node na versão 14
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash

# Instala o Node.js
sudo apt-get install -y nodejs

Instale o Ghost-CLI

O Ghost-CLI é uma ferramenta de linha de comando para ajudá-lo a instalar e configurar o Ghost para uso de forma rápida e fácil. O módulo npm pode ser instalado com npmou yarn.

sudo npm install [email protected] -g

Uma vez instalado, você sempre pode executar ghost helppara ver uma lista de comandos disponíveis.

Instalar o Ghost

Depois que seu servidor estiver configurado e ghost-cli instalado corretamente, você poderá instalar o Ghost. Se você precisar de um controle mais refinado, a CLI possui sinalizadores e opções que permitem detalhar e personalizar as etapas de instalação.

Crie um diretório

O Ghost deve ser instalado em seu próprio diretório, com um proprietário e permissões apropriados.

# Cria o diretório: Altere `sitename` para sua preferência
sudo mkdir -p /var/www/sitename

# Difine proprietário da pasta: Altere <user> para o nome do seu usuário
sudo chown <user>:<user> /var/www/sitename

# Define as permissões 755 a pasta
sudo chmod 775 /var/www/sitename

# Navegue para a pasta
cd /var/www/sitename

Execute o processo de instalação

Agora instalamos o Ghost com um comando final.

ghost install

Instalar perguntas

Durante a instalação, a CLI fará várias perguntas para configurar seu site.

Blog URL

Insira o URL exato em que sua publicação estará disponível e inclua o protocolo para HTTP ou HTTPS. Por exemplo, https://exemplo.com. Se você usar HTTPS, o Ghost-CLI oferecerá a configuração de SSL para você. O uso de endereços IP causará erros.

nome de host MySQL

Isso determina de onde seu banco de dados MySQL pode ser acessado. Quando o MySQL estiver instalado no mesmo servidor, use localhost(pressione Enterpara usar o valor padrão). Se o MySQL estiver instalado em outro servidor, digite o nome manualmente.

Nome de usuário/senha do MySQL

Se você já possui um banco de dados MySQL existente, digite o nome de usuário. Caso contrário, digite root. Em seguida, forneça a senha do seu usuário.

Nome do banco de dados fantasma

Digite o nome do seu banco de dados. Ele será configurado automaticamente para você, a menos que você esteja usando um usuário/senha MySQL não-root. Nesse caso, o banco de dados já deve existir e ter as permissões corretas.

Configurar um usuário MySQL fantasma? (Recomendado)

Se você forneceu seu usuário raiz do MySQL, o Ghost-CLI pode criar um usuário personalizado do MySQL que só pode acessar/editar seu novo banco de dados do Ghost e nada mais.

Configurar o NGINX? (Recomendado)

Configura o NGINX automaticamente, permitindo que seu site seja visualizado pelo mundo exterior.

Configurar SSL? (Recomendado)

Se você usou um https URL de blog e já apontou seu domínio para o lugar certo, o Ghost-CLI pode configurar o SSL automaticamente para você usando Let's Encrypt . Como alternativa, você pode fazer isso mais tarde executando ghost setup ssl a qualquer momento.

Digite seu e-mail
A configuração da certificação SSL requer um endereço de e-mail para que você possa ser informado se houver algum problema com seu certificado, inclusive durante a renovação.

Configurar o systemd? (Recomendado)

systemd é a ferramenta de gerenciamento de processos recomendada para manter o Ghost funcionando sem problemas. Recomendamos escolher yes, mas é possível configurar seu próprio gerenciamento de processos.

Iniciar?

Escolher yes executa o Ghost e faz seu site funcionar.

Migrando o conteúdo

Agora já com os arquivos de conteúdo baixados fica mais fácil a migração.

Acessando o admin do Ghost url/ghost no ícone da engrenagem acesse a opção Labs.

Settings > Labs > Import content (selecione o arquivo JSON, baixo no iniciado do post).

Feito isso, seus posts serão migrados para o Ghost. Agora precisamos migrar as imagens.

Lembra que fizemos o download da pasta uploads? Então, a estrutura basicamente é a mesma. Só precisamos copiar todo o conteúdo para /content/images/wordpress/.

Agora, todos os posts e imagens devem aparecer no Ghost. :)

Dificuldades que tive:

A única dificuldade que tive foi nas permissões das pastas no servidor, então não se esqueca de acrescentar o "-p" na criação da pasta, além dos comandos de chown e chmod.