WordPress: como fazer backup do seu blog sem a instalação de plugin
O WordPress é um dos melhores gerenciadores de conteúdo (CMS) open source. Seus principais concorrente são: Joomla e Drupal. Este blog que você lê agora é hospedado em uma plataforma WordPress no provedor GoDaddy.
Muitas vezes queremos testar um novo plugin, atualizar o sistema, instalar um novo template/tema, customizar a interface ou até mesmo desenvolver uma nova funcionalidade/plugin para um site em WordPress. Quando se tem este tipo de necessidade o recomendado é utilizar um ambiente de testes/desenvolvimento até que você finalize suas atividades e esteja pronto para aplicar a mudança no seu ambiente de produção sem quebrar nada.
O procedimento para criar o ambiente de desenvolvimento e testes foi realizado com o provedor de hospedagem GoDaddy e o sistema operacional Ubuntu 12.04 64 bits LTS, porém isso pode ser facilmente adaptado para outras distribuições como Red Hat, Fedora, Suse e etc e também para outros provedores de hospedagem de sites.
Não é necessário nenhum plugin de backup do WordPress para criação do ambiente do testes e desenvolvimento descrito neste artigo. É possível também com pouca adaptação utilizar o procedimento para migrar a hospedagem do blog para um serviço de cloud computing como Amazon EC2/AWS, Rackspace, Google Compute Engine, Digital Ocean e entre outros.
Criando um ambiente de testes e desenvolvimento do WordPress
Veja abaixo como realizar o backup e criar um ambiente de testes do seu blog em WordPress hospedado em provedores como GoDaddy, Locaweb, Uolhost, Dreamhost e etc.
Realizando o backup da aplicação WordPress e banco de dados
O recomendável é fazer o backup regularmente, veja com seu provedor se existe uma rotina que permita o backup periódico dos arquivos estáticos e do banco de dados do seu blog WordPress. E não se esqueça, mantenha os arquivos de backup com você ou hospedado em algum serviço de armazenamento em nuvem e fora do serviço de hospedagem do ambiente de produção.
Backup dos arquivos estáticos:
Faça o download dos arquivos do WordPress em seu provedor de hospedagem. São os arquivos estáticos que contemplam os códigos em php, CSS, Java Script, arquivos de configuração, imagens e etc. Geralmente é disponibilizado um acesso através do protocolo FTP para que você consiga copiar os arquivos do site, procure no help do seu provedor como copiar os arquivos do WordPress que geralmente significa copiar todo o conteúdo desde a pasta raiz.
A estrutura dos arquivos são semelhantes a este conteúdo:
1 2 3 4 5 6 |
root@mariano:/var/www/wordpress# ls license.txt sitemap.xml.gz wp-admin wp-content wp-login.php xmlrpc.php cgi missing.html stats wp-blog-header.php wp-cron.php wp-mail.php favicon.ico php.ini webformmailer.php wp-comments-post.php wp-includes wp-settings.php gdform.php readme.html welcome.html wp-config-sample.php wp-links-opml.php wp-signup.php index.php sitemap.xml wp-activate.php wp-config.php wp-load.php wp-trackback.php |
Backup dos arquivos estáticos na GoDaddy:
A GoDaddy oferece um gerenciador de arquivos chamado File Manager e um FTP client em Java que é executado dentro do seu navegador, porém recomendo a utilização de um aplicativo de cliente FTP para baixar os arquivos. Com o FTP client (exemplo, utilize a função Conectar ao servidor do Nautilus no Ubuntu), forneça o endereço do servidor com usuário e senha e então copie todo o conteúdo para seu computador.
Backup do banco de dados MySQL:
E agora é preciso realizar o download do backup do banco de dados do MySQL, geralmente a extensão do arquivo é .sql.
Na GoDaddy para realizar o backup faça login com seu usuário, acesso o menu My Account, Web hosting e acesso o botão Launch. Em Databases clique sobre o ícone MySQL e no banco de dados de sua aplicação selecione a ação/action Backup. O backup no formato .sql ficará disponível na pasta _db_backups na raiz de sua hospedagem nos servidores da GoDaddy.
É possível executar via linha de comando caso você tenha acesso remoto ao console do servidor via ssh com o comando mysqldump. Exemplo:
1 |
mysqldump -u usuario -p nome-do-banco-de-dados > wordpress-backup.sql |
O arquivo wordpress-backup.sql é o backup de todo o conteúdo do banco de dados do WordPress.
Preparando uma máquina virtual Ubuntu Server 12.04
Recomendo a criação de uma máquina virtual com o VirtualBox ou VMware Player para criar seu ambiente de testes e desenvolvimento com o WordPress e dessa forma deixá-lo totalmente independente do seu computador, mas claro é possível realizar este procedimento no seu desktop Linux sem nenhum problema.
Configuração da VM no VirtualBox
No VirtualBox para que sua máquina física consiga acessar a máquina virtual via rede , configure uma interface Host-only Adapter e outra do tipo NAT para permitir o acesso da VM à Internet. Com a interface Host-only Adapter você irá acessar a VM remotamente (ssh) pela faixa de endereço definida em “File >> preferences >> Network >> adicione uma nova interface (vboxnet0), se necessário. Edite as configurações da interface e você verá a faixa de endereço entregue pelo DHCP Server do VirtualBox para sua VM.
Após instalar o Ubuntu na VM, com o comando ifconfig é possível verificar que existem três interfaces de rede: lo (loopback com 127.0.0.1, eth0 com 10.0.2.15 e eth1 com 192.168.56.101). Caso a interfaces eth0 e eth1 estejam com endereços invertidos não há problema, a comunicação com sua máquina física e à internet continuará funcionando normalmente. Se a interface eth1 não for exibida com o comando ifconfig, tente executar o comando dhclient eth1.
Configuração do sistema operacional Ubuntu
Faça a instalação do Ubuntu Server ou outra distro baseado no Debian em uma máquina virtual e instale as dependências do WordPress. O WordPress depende do MySQL e Apache, faça a instalação com o seguinte comando:
1 2 3 4 |
sudo su apt-get update apt-get install openssh-server apt-get install mysql-server apache2 php5 php5-mysql php5-gd wordpress |
Durante a instalação dos pacotes e suas dependências, será solicitada uma senha para o usuário root do MySQL. Anote-a pois você irá precisar para gerenciar seu banco de dados e restaurá-lo.
Obs.: o openssh-server foi adicionado somente para facilitar a instalação e configuração remota do WordPress na máquina virtual.
Restaurando o backup do WordPress na máquina virtual:
Banco de dados MySQL:
Copie o arquivo de backup do MySQL no formato .sql (via sftp por exemplo) para dentro da máquina virtual e execute os comandos para restaurá-lo:
- Criação do banco de dados e usuário do banco de dados:
1 2 3 4 |
mysql -u root -p create database wordpressdb; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'%'IDENTIFIED BY 'password'; flush privileges; |
- Restauração do banco de dados:
Obs.: O comando abaixo é executado no console/shell do Linux e não do MySQL.
1 |
mysql -u root -p wordpressdb < wordpress-backup.sql |
- Copie todo o conteúdo dos arquivos estáticos baixado para /var/www/wordpress;
1 2 |
mkdir /var/www/wordpress cp -a /tmp/local-do-backup-site /var/www/wordpress |
- O WordPress precisa usar as credenciais do banco de dados local (definido com o comando GRANT)
Configure o arquivo wp-config.php em /var/www/wordpress com as informações abaixo. Lembre-se caso tenha definido uma senha diferente para o usuário ‘wordpress’ do MySQL é preciso alterar essa informação.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// ** MySQL settings - You can get this info from your web host ** // /** Nome do banco de dados */ define('DB_NAME', 'wordpressdb'); /** Usuario com permissoes no banco de dados definido em DB_NAME */ define('DB_USER', 'wordpress'); /** Senha do usuario */ define('DB_PASSWORD', 'password'); /** MySQL hostname */ define('DB_HOST', 'localhost'); |
Configuração do Apache
Virtualhost:
A funcionalidade Virtualhost no Apache permite que um mesmo servidor responda e hospede diversos sites em uma única máquina física ou virtual. Dessa forma é possível armazenar diversos blogs, fóruns, sites com um único servidor. Por isso que a hospedagem geralmente tem um custo baixo, pois uma máquina física com uma configuração modesta pode hospedar centenas ou até milhares de websites dependendo do volume de acessos.
Para criar um virtualhost no Apache do Ubuntu e derivados do Debian, crie um arquivo em /etc/apache2/sites-available/. Exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
vi /etc/apache2/sites-available/wordpressdev.com.br ServerAdmin email@meublogwordpress.com.br ServerName www.meublogwordpress.com.br ServerAlias meublogwordpress.com.br DocumentRoot /var/www/wordpress wordpress/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all ErrorLog ${APACHE_LOG_DIR}/wordpress-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/wordpress-access.log combined |
Caso você esteja migrando do Apache 2.2 para 2.4 você precisará substituir as diretivas de configurações de todos os arquivos de configurações, virtualhosts de:
1 2 |
Order allow,deny Allow from all |
para:
1 |
Require all granted |
A mensagem de erro exibida caso a substituição da diretiva não seja realizada é:
You don’t have permission to access / on this server.
Na diretiva de configuração ServerName e ServerAlias substitua pelo domínio de seu blog – exemplo: mariano.eng.br.
Após a criação do arquivo você precisa habilitar o Virtualhost no Apache, caso contrário a criação do arquivo não fará nenhuma diferença.
1 2 |
a2ensite wordpressdev.com.br service apache2 reload |
- Definições e diretivas do .htaccess
Existem diversas configurações no arquivo .htaccess que fazem com que o WordPress funcione corretamente, por isso é preciso garantir que o arquivo está disponível em /var/www/wordpress. Muitas vezes por ser um arquivo oculto o arquivo .htaccess não é copiado durante a realização do backup via FTP, caso ele não esteja no diretório /var/www/wordpress de sua máquina virtual vá até o provedor de hospedagem e copie o arquivo novamente.
- Ativação de módulo Rewrite do Apache
O módulo rewrite do Apache permite a manipulação de URLs pelo Apache em tempo de execução. O WordPress utiliza esta funcionalidade com os permalinks por exemplo. Faça a ativação, caso contrário o WordPress não irá funcionar corretamente:
1 2 |
a2enmod rewrite service apache2 restart |
Pode ser necessário adicionar o conteúdo abaixo no arquivo .htaccess no diretório raiz do WordPress. Isso é necessário caso o WordPress não consiga escrever no arquivo.
1 2 3 4 5 6 |
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] |
- Configurar permissão do usuário Apache nos arquivos estáticos do WordPress
Ainda é preciso garantir que as permissões de execução e leitura para o Apache, dessa forma ele irá conseguir executar os códigos em php do WordPress e ler os arquivos CSS, Java Script e etc.
1 2 |
chmod 760 -Rf /var/www/wordpress chown -Rf www-data.www-data /var/www/wordpress |
No seu desktop configure o /etc/hosts com o endereço IP do host onde foi realizada toda configuração acima, dessa forma você conseguirá acesso seu ambiente de desenvolvimento através da URL original do seu blog. Exemplo:
1 |
192.168.56.101 meublogwordpress.com.br www.meublogwordpress.com.br |
Obs.: substitua meublogwordpress.com.br pelo endereço do seu blog.
A edição do arquivo /etc/hosts fará com que seu desktop não consulte os servidores de DNS para resolver o domínio de seu blog, fazendo com que o acesso ao WordPress seja realizado na máquina virtual de desenvolvimento.
Agora basta abrir o navegador com a URL do seu blog que você estará acessando seu ambiente de testes.
Para garantir que você está realmente no ambiente de desenvolvimento e não no ambiente de produção no provedor de hospedagem pare o serviço do Apache em sua máquina virtual (/etc/init.d/apache2 stop) onde ele está instalado e você verá um erro semelhante a este ao tentar recarregar a página:
This webpage is not available
Suba o serviço do Apache com /etc/init.d/apache start e volte a utilizar o ambiente de desenvolvimento.
Caso queira acessar o ambiente de produção, basta comentar a linha adicionada no arquivo /etc/hosts.
O procedimento não funcionou? Tente debugar através do error log do Apache com o comando tail -f /var/log/apache2/wordpress-error.log.
Backup e restore do WordPress no Windows
Os conhecimento necessários para restaurar o backup do WordPress, criar o ambiente de teste e desenvolvimento em Linux não exige conhecimento avançados. Recomendo que caso você não tenha conhecimento suficiente se esforce um pouco para realizá-lo.
Caso contrário se mesmo assim você quer restaurar o backup no Windows tente utilizando o projeto XAMPP e boa sorte! 🙂
Referências:
1 Resultado
[…] O artigo foi escrito baseado no restore feito no Ubuntu de um blog hospedado na GoDaddy, mas pode ser facilmente adaptado para outras distribuições e provedores.” [referência: mariano.eng.br] […]