- Um novo servidor já com o wordpress instalado, de preferência ubuntu ou debian
- É aconselhavel ser a mesma versão do wordpress do servidor atual
- Ter acesso ao banco de dados mysql de ambos os servidores
- Acesso ssh e nível root ao novo server
No server atual será necessário fazermos o backup de 2 itens de extrema importância
- Banco de dados MySQL
- Backup da pasta wp-content do wordpress
- Acesse o server atual via ssh
ssh [SERVER_USER]@[SERVER_ADDRESS]
- faça o bkp do banco de dados com o comando mysqldump
mysqldump --host=[DB_HOST] -u [DB_USER] -p[DB_PASSWORD] [DB_DATABASE] > /tmp/[DUMP_FILE].sql
- copie o dump para sua maquina ou direto para o server, exemplo:
scp [SERVER_USER]@[SERVER_ADDRESS]:/tmp/[DUMP_FILE].sql .
- isso irá fazer com que o arquivo seja salvo na pasta onde você executou o comando acima
- Será necessário fazer o backup de 1 pasta importante do wordpress chamada wp-content
- Ela fica dentro da pasta de instalação do wordpress, normalmente é localizada em:
/var/www/html
- Comprima a pasta wp-content
# entre na pasta
cd /var/www/html
# comprima a pasta
tar -zcvf wp-content.tar.gz ./wp-content
# mova para a pasta /tmp
mv wp-content.tar.gz /tmp
- Faça o download na sua maquina
# entre na pasta de sua preferência
cd /[SUA_PASTA]
# bkp do arquivo comprimido da pasta wp-content
scp [SERVER_USER]@[SERVER_ADDRESS]:/tmp/wp-content.tar.gz .
# bkp do dump do banco de dados
scp [SERVER_USER]@[SERVER_ADDRESS]:/tmp/[DUMP_FILE].sql .
- Faça o upload dos arquivos de bkp p/ o novo servidor
# entre na pasta onde salvou os bkp
cd /[SUA_PASTA]
# bkp do arquivo comprimido da pasta wp-content
scp ./wp-content.tar.gz [SERVER_USER]@[SERVER_ADDRESS]:/tmp
# bkp do dump do banco de dados
scp ./[DUMP_FILE].sql [SERVER_USER]@[SERVER_ADDRESS]:/tmp
- Agora acesse o server e descompacte o arquivo da pasta wp-content
# acesse o servidor novo
ssh [SERVER_USER]@[SERVER_ADDRESS]
# entre na pasta que copiamos os arquivos de bkp
cd /tmp
# extraia a pasta wp-content
tar -xzvf wp-content.tar.gz
- Crie o seu banco de dados
# acesse o banco de dados mysql
mysql --host [DB_HOST] -u [DB_USER] -p[DB_PASS]
# crie o banco de dados
CREATE database [DB_NAME]
#saia do banco
exit
- Restore do banco de dados
# entre na pasta onde salvou os bkp
cd /[SUA_PASTA]
#faça o restore
mysql --host [DB_HOST] -u [DB_USER] -p[DB_PASSWORD] [DB_NAME] < ./[DUMP_FILE].sql
- Sobrescrever a pasta wp-content
# vá para a pasta do wordpress
cd /var/www/html
# faça um bkp da pasta atual
sudo mv ./wp-content ./wp-content-bkp
# mova a pasta do bkp para o wordpress
sudo mv /tmp/wp-content .
# muda o grupo de usuario da pasta
sudo chown -R www-data.www-data ./wp-content
- Com isso os arquivos e o banco de dados estão instalado.
- Agora vamos habilitar o modulo do SSL. (pode ser em qualquer pasta)
sudo a2enmod ssl
-
Crie ou Edite o arquivo do Apache2 em:
nano /etc/apache2/sites-enabled/000-default.conf
nano /etc/apache2/sites-enabled/000-default-ssl.conf
nano /var/www/html/.htaccess
-
000-default.conf remova o conteúdo e insira o seguinte:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<files xmlrpc.php>
order allow,deny
deny from all
</files>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- 000-default-ssl.conf remova o conteúdo e insira o seguinte:
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
#SSLCertificateChainFile /etc/apache2/ssl/intermediate.crt
<Directory /var/www/html/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<files xmlrpc.php>
order allow,deny
deny from all
</files>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
-
ps: Preste atenção em alguns postos de ambos os arquivos, alguns lugares dizem o caminho do wordpress, e no 2º arquivos onde estarão os certificados ssl.
-
.htaccess remova o conteúdo e insira o seguinte:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
-
Configure o dominio atual em:
nano /var/www/html/wp-config.php
-
wp-config.php Adicione as seguintes linhas no final do arquivo
define('WP_HOME','https://[SERVER_DOMAIN]');
define('WP_SITEURL','https://[SERVER_DOMAIN]');
-
Agora vá para o navegador e entre na área administrativa para atualizarmos os permalinks
- Acesse o endereço
https://[SERVER_DOMAIN]/wp-config
- Informe o usuário e senha
- No menu lateral acesse os links _Configurações / Links Permanentes
- Escolha qualquer outro e Salve
- Agora escolha o anterior e Salve
- Acesse o endereço
-
Com isso na teoria seu wordpress esta migrado, mas sabemos que outros erros e novas configurações podem ser necessárias, por exemplo:
- no banco de dados existir um prefixo nas tabelas, com isso no arquivo
wp-config.php
será necessário o item:$table_prefix = 'wp_[PREFIX_NAME]_';
- no banco de dados existir um prefixo nas tabelas, com isso no arquivo
-
Alguns links de ajuda:
- https://www.wpexplorer.com/migrating-wordpress-website/
- https://www.hostinger.com.br/tutoriais/corrigir-erro-404-wordpress
- https://fancythemes.com/fix-broken-permalinks-wordpress/
- https://www.hostinger.com/tutorials/wordpress/how-to-change-wordpress-urls-in-mysql-database-using-phpmyadmin
- https://kinsta.com/knowledgebase/change-wordpress-url/
-
Boa Sorte :)