Skip to content

Instantly share code, notes, and snippets.

@eduzera
Last active October 24, 2019 18:59
Show Gist options
  • Save eduzera/bb3892445b61d31f5a6d546176b224c4 to your computer and use it in GitHub Desktop.
Save eduzera/bb3892445b61d31f5a6d546176b224c4 to your computer and use it in GitHub Desktop.
Migrate Wordpress Server

Como migrar wordpress de servidor

Pré Requistos

  • 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

Server Atual

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

Backup do Mysql

  • 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

Backup da pasta wp-content

  • 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 .

Server Novo

  • 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.

Apache2 Configuração

  • 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

Conclusão

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment