Como mover facilmente uma instalação do WordPress do desenvolvimento para a produção?

199

Eu desenvolvo em uma caixa e uso uma segunda para produção. No momento, apenas despejo o banco de dados e, em seguida, localizo uma substituição para as alterações de URL; depois copie os arquivos e importe o novo SQL.

Existem maneiras melhores de fazer isso?

Ryan Gibbons
fonte
2
Para os recém-chegados à pergunta. 1 ano depois e ainda estou usando o plugin @MikeSchinkel. Ele tem um 0,7 para o qual mudei algumas instalações sem problemas. mikeschinkel.com/downloads/wp-migrate-webhosts-0.7.zip
Ryan Gibbons
Aqui está um script sem plug-in que lançamos que ajudou imensamente o meu processo. philipdowner.com/2012/01/...
Philip Downer
6
Hoje, existe um plugin chamado Duplicator: wordpress.org/extend/plugins/duplicator É literalmente um processo de três etapas e funciona como um encanto. Já foi usado várias vezes para implantar um site de um ambiente de teste em um ambiente ativo.
Matthias

Respostas:

122

@ Insanity5902 : A implantação de um site WordPress de uma caixa para outra é uma PITA desde o primeiro dia em que comecei a trabalhar com o WordPress. (Verdade seja dito que foi uma PITA com Drupal por 2 anos antes de eu começar com o WordPress, então o problema certamente não é exclusivamente com o WordPress.)

Incomodou-me o fato de que, toda vez que eu precisava mudar um site, eu gastava tanto esforço duplicado e me impedia de implantar para testar com a frequência que preferia. Então, cerca de 4-6 meses atrás, comecei a trabalhar em um plug-in para resolver o problema de migração de host da web e mencionei minhas idéias no fórum do WP Tavern .

Avanço rápido de hoje e eu praticamente consegui funcionar e estou convenientemente chamando de " WP Migrate Webhosts ". Mesmo que o plug-in ainda seja muito beta (provavelmente até alfa), dada a sua pergunta, acho que estou pronto para permitir que as pessoas comecem a bater nele.

O caso de uso previsto é o seguinte:

  1. primeiro, o desenvolvedor lida com o upload de todos os temas alterados e arquivos de plug-in via FTP,
  2. então carrega o banco de dados MySQL de desenvolvimento para o servidor de teste na sua totalidade e finalmente
  3. em seguida, executa o plug-in para migrar quaisquer referências do domínio anterior para o novo. (Meu plug-in não tenta resolver a mesclagem de novos campos ou tabelas de banco de dados com dados ativos ; esse é um problema muito maior que não tenho certeza de como resolver.)

Você pode fazer o download do plug-in do meu site e descompacte em seu diretório de plugins (se você não sabe como fazer isso, então este plugin não é para você, porque requer alguém que sabe o que estão fazendo para usá-lo.) Eu vou mantenha este plugin on-line até que eu o libere no WordPress.org, após o qual você deve procurá-lo lá.

Para usá-lo você tomar uma abordagem diferente em sua wp-config.phpque normal, comentando a quatro (4) define DB_NAME, DB_USER, DB_PASSWORDe DB_HOSTe, em vez registrar os padrões para webhosts e, em seguida, registrar informações sobre cada própria hospedagem. Aqui está a wp-config.phpaparência desse segmento (observe que a primeira seção é o código desnecessário comentado e observe também que eu configurei meu arquivo de hosts na minha máquina local com .devdomínios de nível superior não roteáveis para facilitar o desenvolvimento do dia a dia. No Mac, o VirtualHostX facilita isso):

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
//define('DB_NAME', 'wp30');

/** MySQL database username */
//define('DB_USER', 'wp30_anon');

/** MySQL database password */
//define('DB_PASSWORD', '12345');

/** MySQL hostname */
//define('DB_HOST', '127.0.0.1:3306');

require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/wp-webhosts.php');
register_webhost_defaults(array(
 'database'  => 'example_db',
 'user'      => 'example_user',
 'password'  => '12345',
 'host'      => 'localhost',
 'sitepath'  => '',        // '' if WordPress is installed in the root
));
register_webhost('dev',array(
 'name'      => 'Example Local Development',
 'host'      => '127.0.0.1:3306',
 'domain'    => 'example.dev',
 'rootdir'   => '/Users/mikeschinkel/Sites/example/trunk',
));
register_webhost('test',array(
 'name'      => 'Example Test Server',
 'rootdir'   => '/home/example/public_html/test',
 'domain'    => 'test.example.com',
));
register_webhost('stage',array(
 'name'      => 'Example Staging Server',
 'rootdir'   => '/home/example/public_html/stage',
 'domain'    => 'stage.example.com',
));
register_webhost('live',array(
 'name'      => 'Example Live Site',
 'rootdir'   => '/home/example/public_html/',
 'password'  => '%asd59kar12*fr',
 'domain'    => 'www.example.com',
));
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/set-webhost.php');

Espero que isso seja (principalmente) auto-explicativo. Tentei tornar o código o mais limpo possível, mas infelizmente isso requer essas duas require_once()linhas enigmáticas antes e depois do bloco do código de registro do host da web, pois não havia como " enganchar " o WordPress antes de wp-config.phpser chamado.

Depois de atualizar o seu wp-config.php, você pode simplesmente usar o atalho do URL wp-migrate-webhostspara ir para a tela de administração da seguinte forma:

http://example.com/wp-migrate-webhosts

O acima irá levá-lo para uma tela de administrador como o seguinte, que tem um pouco de descrição de texto e permite migrar DE qualquer um dos outros domínios de host com um único clique depois de selecionar os domínios para migrar a partir de ( NOTA : este exemplo mostra vai BAIXO do estágio servidores de teste / / ao vivo para o desenvolvimento local, mas a certeza de que pode migrar TO qualquer domínio onde acontece a ser localizado. Isto também significa o plugin será ótimo para tirar um site ao vivo existente e rapidamente obter um ambiente de desenvolvimento local de trabalho! ):

insira a descrição da imagem aqui

Se não estiver claro, a " migração " nesse contexto significa atualizar todas as referências no banco de dados atual para serem apropriadas para o host definido atualmente (e " atual " é detectado pela inspeção $_SERVER['SERVER_NAME']).

O interessante do plug-in é que ele implementa algumas migrações básicas, mas qualquer pessoa pode conectá-lo e executar suas próprias migrações . Por exemplo, se você adicionar um plug-in de galeria que armazene caminhos completos para imagens no banco de dados, poderá conectar a migrate_webhostsação à qual serão transmitidos o host " from " e o host " to " como uma matriz de metadados, e você poderá para executar o que você precisa fazer no banco de dados usando SQL ou qualquer função aplicável da API do WordPress para fazer a migração. Sim, qualquer um de nós poderia fazer isso sem o plug-in, mas sem o plug-in, achei que escrever todo o código necessário era mais esforço do que valia. Com o plugin, é mais fácil escrever esses pequenos ganchos e acabar logo com isso.

Você também pode achar que minhas migrações falham em casos extremos que eu não testei e talvez você possa me ajudar a melhorar o plug-in? Quem quiser pode me enviar um e-mail por meio da minha conta do Gmail (meu apelido é "mikeschinkel").

Além disso, o plugin foi projetado para aceitar metadados webhost definir pelo usuário em adição aos que ele reconhece como database, user, password, host, domainetc. Um exemplo perfeito pode estar googlemaps_apikeyonde você pode armazenar uma das diferentes chaves de API para cada domínio do seu Google Mapa necessidades de plugin para operar corretamente (quem dentre você que usou um plug-in do Google Maps não implantou um aplicativo em um servidor ativo e esqueceu de alterar o código para a chave de API correta? Vamos lá, seja honesto ... :) Com este plug-in, um googlemaps_apikeyelemento em sua matriz register_webhost () e um pequeno migrate_webhostsgancho personalizado, você pode efetivamente eliminá-lo como uma preocupação!

Bem, é isso. Estou iniciando este plug-in aqui no Exchange Answerer's WordPress porque a pergunta do @ Insanity5902 o acionou. Informe-me se for útil, aqui, se for o caso, ou por e-mail, se não.

PS Se você decidir usar isso, lembre-se de que é alfa / beta e isso significa que ele será alterado. Portanto, esteja preparado para uma pequena cirurgia, se você quiser usá-la agora e depois usar a versão lançada, uma vez que tenha sido derrotada por muitas mãos.

PPS Quais são meus objetivos com isso? Adoro ver isso migrar para o núcleo do WordPress, para que todos tenham acesso a ele. Mas antes que isso possa ser considerado, muitas pessoas precisam se interessar em usá-lo para garantir que ele realmente resolva mais problemas do que poderia criar. Então, se você gosta da idéia, use-a de todos os modos e me ajude a ganhar impulso para uma eventual inclusão esperançosa no núcleo do WordPress.

MikeSchinkel
fonte
Soluções legais Ainda tenho algumas perguntas: 1) Você ainda precisa definir o WP_SITEURL para entrar na área de administração? 2) A ferramenta exibida apenas para Usuários Administradores? (não tenho certeza se a seção ferramenta exibe para não-admin)
Ryan Gibbons
Olá @ Insanity5902: 1) Não é necessário definir WP_SITEURL, o plugin faz para você. Na verdade, você o define quando "registra" um "domínio" e "caminho do site" para um host da web. Na operação normal do WordPress, é necessário que o WP_SITEURL seja definido no código ou no banco de dados para garantir que ninguém falsifique a URL e faça coisas nefastas, porque com um valor inesperado em $ _SERVER ['SERVER_NAME']. O plug-in WP Migrate Websites define WP_SITEURL indiretamente com base em $ _SERVER ['SERVER_NAME'], mas SOMENTE o fará se o domínio atual corresponder a um dos domínios que você definiu no arquivo wp-config.php, nada mais.
MikeSchinkel
2.) O atalho de URL que mencionei realmente redireciona para o console de administração, portanto, é apenas para pessoas logadas no administrador. No entanto, ainda não tenho verificações específicas para o administrador. Eu nunca adicionei recursos a um plug-in, mas precisarei pesquisar completamente como, nas próximas semanas, para que possamos trabalhar nisso no próximo mês. No entanto, o plugin não é destrutivo; ele pode migrar SOMENTE para o domínio atual e o processo é repetitivo; mesmo que um não administrador tenha entrado, não há realmente nenhum dano que possa causar com ele, pelo menos não que eu possa imaginar.
MikeSchinkel
1
/ wp-migrate-webhosts produz um 404, e / wp-admin produz 'erro ao estabelecer uma conexão com o banco de dados'
Steve
5
Então, qual é o estado de coisas desse plug-in? Parece muito atraente, mas eu gostaria de algo maduro e bem avaliado. Este post é a única informação que posso encontrar sobre ele.
Kevin C.
35

Quando possível, eu definir WP_HOMEe WP_SITEURLem wp-config.php. Isso, combinado com um despejo e importação de banco de dados, é a mais simples de todas as soluções com as quais estou familiarizado.

http://codex.wordpress.org/Changing_The_Site_URL#Edit_wp-config.php

Annika Backstrom
fonte
1
Quando não seria possível defini-las? Isso parece um pouco mais simples do que mudar as coisas no banco de dados.
jfklein
2
@jfklein Estou quase sempre trabalhando com uma rede WordPress, que é incompatível com essas constantes.
Annika Backstrom
1
Fazendo o mesmo. Lamentavelmente, nem todos os temas respeitam isso. ou seja, 'Tema Repsonsive' do ThemeID. Pesquisando no dump / all tables por ' localhost ' (ou qualquer que seja o nome que você escolheu), especialmente wp_options e fazendo pesquisas e substituições, muitas vezes são inevitáveis.
Frank Nocke
@FranKee Eu tenho criar um plugin wordpress.org/plugins/pitta-migration que usa as constantes para atualizar a tabela wp_options que deverá cobrir a maioria dos temas e plugins
icc97
@ icc97: Adorável. Vai olhar para isso. PS: Bela imagem de cabeçalho, retrata a situação.
precisa saber é o seguinte
27

Meu hack favorito; adicione uma configuração ao seu /etc/hostspara fazer com que o domínio de produção aponte para sua caixa de desenvolvimento, apenas na sua máquina. Para implantar na produção, sincronize todos os arquivos e empurre o banco de dados.

Os riscos dessa estratégia são claros; você pode confundir seu ambiente de desenvolvimento com seu ambiente de produção.

Ainda é uma solução fácil.

Wietse Venema
fonte
5
Sim! Estou tão feliz que não fui a única pessoa a pensar nisso! qualquer diferença entre dev e prod é ruim. Remover completamente essa diferença é muito melhor do que tentar contorná-la. E essa configuração não exige nenhum trabalho. Pode-se até fazer testes em uma máquina virtual com arquivo de hosts modificados, se necessário.
Alexander Ave
2
Eu gosto muito desse método, mas como você lida com o push / pull do banco de dados?
Nenotlep
Quanto ao risco de confundir dev com prod, eu uso um plug-in do Chrome que exibe o endereço IP da página da web. Você saberá que está no local quando a sua 127.0.0.1
kosinix
9

Eu queria algo semelhante quando migrei para o WP há alguns meses, então escrevi um shell script bastante simples que usa rsync e mysqldump sobre ssh:

http://snarfed.org/sync_wordpress

Não é sofisticado ou baseado na Web, mas estou feliz com isso.

ryan
fonte
8

O WP Engine é um novo serviço que oferece "One-Click Staging":

O WPEngine possui um recurso exclusivo chamado "teste". Veja como funciona: Antes de fazer uma alteração assustadora no seu blog, clique no botão "instantâneo". Fazemos uma cópia completa do seu blog e o configuramos em uma área separada e segura. Você pode jogar com o que quiser; nada está vivo. Somente quando você está pronto para torná-lo ativo, você toca no site principal.

Parece uma maneira muito fácil de mudar rapidamente do desenvolvimento para a produção, especialmente com um site já ativo.

Travis Northcutt
fonte
3
Essa é realmente uma opção muito boa e será ótima para muitas pessoas! É claro que isso não funciona para URLs incorporadas nem ajuda para pessoas que desenvolvem localmente, para que possam usar um IDE com um depurador. Agora, se WPEngine pode criar uma interação que funde uma implantação local também, então ele vai ser realmente algo (Technosailor, você está ouvindo?)
MikeSchinkel
Concordo, isso seria uma adição fantástica.
Travis Northcutt
O recurso de captura instantânea copia apenas da produção para a preparação, e não o contrário. É ótimo para testar alterações, mas não ajuda na implantação na produção.
sam
2
@sam, na verdade, eles começaram recentemente a implementar a capacidade de copiar da preparação para a produção. wpengine.com/2013/04/user-portal-v2-and-staging-to-production
Travis Northcutt
7

Plug-in do duplicador: Aqui está um plug-in no qual estou trabalhando. Atualmente, está na versão beta, mas faz o trabalho para a maioria dos sites. No momento, ele é direcionado a instalações menores do WordPress. http://wordpress.org/extend/plugins/duplicator/

Recursos: Recursos adicionais para o plugin podem ser encontrados aqui: http://lifeinthegrid.com/duplicator/

Comunidade: informe-nos sobre seus sucessos ou quaisquer problemas que você possa encontrar! Em um esforço para gerenciar mais facilmente os vários tópicos, publique problemas nos fóruns de plugins do WordPress.org. Por favor, não publique nenhum dado de log do plugin nos fóruns online. Os dados de log podem ser enviados ao nosso site de suporte.

Cory
fonte
6

Você pode dar uma olhada em um produto do iThemes, chamado BackUpBuddy . Eu usei apenas duas vezes, cada vez que tive um problema ou duas, mas no geral parece promissor.

MikeK
fonte
5

Pessoalmente, estou abordando esse problema com meu projeto no Github, chamado Autopress . Ainda não tenho uma solução perfeita, mas estou chegando mais perto, especialmente com o plugin wpstage do pessoal do wpengine.

Vid Luther
fonte
Acabei de verificar seu script. Agradável. Se eu entendi, instala um novo WP no servidor. A questão aqui é como migrar do desenvolvimento para a produção. Isso pode ajudar nisso?
Sruly
17
É isso? github.com/vluther/Autopress Sugiro criar links em suas respostas para que as pessoas possam clicar com o botão direito!
Artlung 12/08/10
4
@ Mike Lee: Sim, você pode votar novamente nos comentários. Veja, votei no comentário de artlung. Procure o uparrow ao passar o mouse à esquerda do comentário.
MikeSchinkel
Estou trabalhando em uma maneira de manter tudo no controle de versão e, em seguida, passando do dev para a produção. Eu já consegui fazer isso sem problemas em alguns sites, mas ainda há alguns ajustes que preciso resolver.
Vid Luther
1
Não tenho certeza se é isso, mas existe um plug-in WP Engine que é usado para a migração de sites entre hosts. Chama-se Instantâneo ( link direto ).
joelhaus
5

Isso parece promissor. Estamos trabalhando em alguns scripts para lidar com a migração de alguns dados, opções wp, por exemplo, alterando caminhos no db, uma cópia na mídia.

O problema que tenho é que o site ao vivo continua a crescer enquanto o outro está em desenvolvimento. Um site em que trabalhamos tem 20 postagens por dia e mais de 3.000 comentários por dia. São dados demais para mudar com o phpmyadmin ou através da linha de comando. Além disso, mover os dados sempre causa problemas de UTF por algum motivo.

Além disso, agora que parece que as opções de menu estão armazenadas no banco de dados, tenho ainda mais o que lidar.

Verifico todo o meu código no SVN e implanto o código via FTP no servidor (Beanstalk). Isso não faz as alterações no banco de dados para mim, nem ativa novos plugins.

Meu plano agora é criar um arquivo de manifesto enquanto estou desenvolvendo para fazer todas as minhas alterações no site ativo.

Por exemplo, o arquivo teria linhas legíveis por humanos

Isso incluiria plugins para ativar, opções wp para mover, imagens para mover, páginas para mover. Em seguida, meu plug-in detectaria o arquivo de manifesto e faria todas as alterações no site de teste.

Depois de testar isso e ter certeza de que consegui tudo, tive certeza de que funcionaria na produção.

Este plugin ainda é apenas uma idéia, mas tenho algum código escrito para ele.

Além disso, se você quiser fazer alterações apenas na URL do seu banco de dados, poderá usar o seguinte SQL.

basta substituir $old$pelo domínio antigo e $new$pelo novo

update wp_postmeta set meta_value = replace(meta_value, '$old$' , '$new$') ;
update wp_posts set post_content = replace(post_content, '$old$' , '$new$') ;
update wp_options set option_value = replace(option_value, '$old$' , '$new$') ;
Andrew
fonte
2
Apenas uma observação, minha chamada sql pode interromper os dados serializados. s: 14: blogs.prod.com tem o comprimento codificado como 14. Depois de executar o código, agora temos o s: 14: dev.prod.com que está corrompido. Deve ser usado com cautela: 12: dev.prod.com.
Andrew
4

Dois projetos do Google Summer of Code que têm um objetivo semelhante:

Jan Fabry
fonte
Não parece que nenhum desses projetos decolou?
icc97
3

Eu uso o comando de exportação do subversion para instalar os arquivos do WordPress (http://core.svn.wordpress.org/tags//), bem como todos os plugins no repositório (http://plugins.svn.wordpress.org//tags //), basta compactar o tema e os plugins personalizados e instalá-los normalmente. Depois que tudo isso estiver funcionando sem conteúdo, exporto o banco de dados de teste e faço uma pesquisa / substitui a URL E o caminho do arquivo (armazenado para mídia) e importo para um banco de dados vazio, depois alterno as informações do banco de dados em wp-config .php. Geralmente me leva de 10 a 20 minutos.

John P Bloch
fonte
3

Normalmente, faço login no phpMyadmin, carrego o banco de dados e edito o conteúdo de wp_options> siteurl e wp_options> home no domínio esperado. Se você precisar atualizar URLs no conteúdo de suas postagens e páginas, poderá pesquisar / substituir o URL e o caminho de mídia / uploads no arquivo .SQL antes do upload. É um trabalho rápido.

Alex Costa
fonte
3

Embora não haja falta de boas soluções aqui, no espírito de compartilhar, pensei em adicionar meu script bash deploy à pilha: https://github.com/jplew/SyncDB

O SyncDB é um script de implementação do bash destinado a eliminar o tédio da sincronização de versões local e remota de um site do Wordpress. Ele permite que os desenvolvedores que trabalham em um ambiente local (por exemplo, MAMP) rapidamente "empurram" ou "puxam" alterações de ou para seu servidor de produção com um único comando de terminal.

Esse script funciona bem com o WP-Skeleton de Mark Jaquith, e aproveita mysqldump, gite rsyncpara sincronizar todo o site - banco de dados, código e mídia - em duas etapas fáceis:

./syncdb
git push hub master
JP Lew
fonte
3

Estou usando http://wordpress.org/plugins/wp-clone-by-wp-academy/ . Funciona muito bem!

Apenas 3 etapas:

  1. Instale o plug-in nos dois sites.
  2. Use o plug-in para gerar um backup no site antigo.
  3. Pegue o URL de backup fornecido e conecte-o à página do plug-in no novo site, clique em ir e sua migração será concluída em apenas alguns segundos!

Ele ajusta todos os URLs automaticamente - incluindo substituições de seqüência de caracteres serializadas - para não correr o risco de perder configurações de widgets, etc.

Os únicos problemas que tive foram em alguns sites com bancos de dados maiores (~ 300 MB), o que causou tempos limite de execução de scripts PHP durante a importação do backup do site.

jmotes
fonte
3

A partir de 2017, aqui estão as duas melhores maneiras que eu encontrei para lidar com a transferência de um banco de dados WordPress do desenvolvimento para a produção.

WP Migrate DB Pro / WP Sync DB

https://wordpress.org/plugins/wp-migrate-db/

Esses plug-ins do WordPress permitem enviar, puxar e sincronizar tabelas de banco de dados entre instalações do WordPress. Isso é muito melhor do que encontrar / substituir por vários motivos, porque:

  • Exporta seu banco de dados como um despejo de dados MySQL (muito parecido com phpMyAdmin)
  • Encontra e substitui URLs e caminhos de arquivo
  • Lida com dados serializados
  • Permite que você salve no seu computador como um arquivo SQL

Sou fã de ser pago pelo trabalho que faço, por isso recomendo que apoie o Sr. Brad Touesnard e compre uma cópia de licença da coisa real. O WP Sync DB é uma réplica e, como resultado, está sempre atrasado. Com este plugin, o processo é simples:

  1. Instale / ative o plug-in no seu host local e ambiente de produção
  2. Configure uma transferência push do seu servidor de host / desenvolvimento local para sua produção
  3. Preencha as regras para quais tabelas transferir e defina regras de localização e substituição a serem executadas
  4. É isso aí!

Pesquisa e substituição de banco de dados para bancos de dados WordPress da InterconnectIT

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

Esta ferramenta gratuita não é um plug-in, mas é instalada no diretório raiz da instalação de produção do WordPress. Isso não é tão bom quanto o WP Migrate DB Pro, pois requer algumas etapas manuais, mas mesmo assim é uma ótima opção que funciona consistentemente. Ao usar essa abordagem, o processo se parece com o seguinte:

  1. Faça backup do seu banco de dados local, isso é absolutamente necessário, pois iremos importá-lo novamente em breve
  2. Adicione o script a uma pasta no diretório raiz das instalações
  3. Execute a localização e substitua no seu banco de dados
  4. Exporte seu banco de dados e salve-o em seu ambiente de produção
  5. Reimporte seu backup da etapa 1 para restaurar seu host local
  6. Conecte-se ao seu banco de dados de produção e faça backup (como sempre deveria antes de fazer isso)
  7. Importe a exportação que fizemos DEPOIS de executar a rotina de localização / substituição da etapa 4

Você pode usar uma abordagem mais rápida, mas isso envolve tempo de inatividade no seu site de produção, o que, na minha opinião, é inaceitável. É por isso que chamamos de produção, certo?

Kevin Leary
fonte
1

como executo meus sites no IIS (também executo o asp.net, então preciso do windows), uso o WebPI do Msft para instalar uma nova instância, copio o modelo e uso a importação / exportação para transferir os dados.

Não é perfeito, mas a coisa toda leva menos de uma hora.

Obviamente, seria bom ter uma solução com um clique, mas foi o que achei mais fácil para mim.

Sruly
fonte
1

Outra solução paga: a estrutura de temas do Xtreme One lançou a versão 1.2 com o Xtreme Backup, que permite "exportar ou importar as configurações dos seus temas, layouts ou widgets para crianças, com todas as suas configurações / conteúdo como arquivo XML".

Jan Fabry
fonte
1

Um colega de trabalho encontrou isso. Conceito interessante, embora não funcione entre servidores. Ainda estou explorando, mas parece que poderia funcionar muito bem para uma instância de preparação

http://code.google.com/p/deploymint/

Ryan Gibbons
fonte
Quatro meses atrás, eu não poderia fazer este trabalho plug-in ... E ainda é a versão 0.1 em code.google
brasofilo
1

Isso pode não ter acontecido quando você fez a pergunta, mas estou usando um serviço chamado Blogvault há alguns meses e ele fez isso perfeitamente. Provavelmente já fiz mais de 50 migrações (cruzando domínios, subdomínios e hosts da web), sem problemas e não demorando muito.

É um serviço pago (por domínio / mês), mas não tanto.

Larry
fonte
1

RAMP é um novo plug-in de implantação de conteúdo do Crowd Favorite, e parece muito bom. São US $ 250, no entanto, então ainda não testei. No entanto, pode apenas pagar a si próprio no tempo economizado, por isso estou considerando.

O grande benefício que ele tem sobre a maioria dos outros métodos mencionados é que ele pode mesclar inteligentemente postagens, comentários, etc. Não é apenas importar um mysqldump, é mais como o controle de origem do banco de dados. Por exemplo, ao implantar uma postagem, ele também implantará as tags dessa postagem, se elas ainda não existirem em produção.

Ian Dunn
fonte
RAMP é para implantação de conteúdo , em oposição à implantação de código , mas eu concordo, parece excelente. Agora eles têm uma demonstração da RAMP configurada para que você possa experimentar os recursos.
EmZo
A pergunta era sobre o conteúdo deployement, não implantação de código, e eu comecei a minha resposta dizendo "RAMP é um novo conteúdo plugin de implantação ..."
Ian Dunn
1

Deixe-me dar um dos meus favoritos :-)

// proven local<->live codefork (covers local network testing, i.e. from mobile devices):
$GLOBALS['is_local'] =  
    in_array( $_SERVER['REMOTE_ADDR'], array("127.0.0.1","::1")) || // simple localhost (IPv4 IPv6)
              $_SERVER['HTTP_HOST'] == 'local.workblog'          || // call by local name (adjust)
       substr($_SERVER["REMOTE_ADDR"],0,8) == '192.168.';           // (mobile) device in local network

$table_prefix  = NULL; // ensure scope

if ( $GLOBALS['is_local'] )  // LOCAL fork ------------------------
{
        ....
}
else  // STAGE/LIVE fork -------------------
{

... e então você trabalha a partir daí. DB_NAME, DB_USER ... prefixo da tabela. Pessoalmente, eu ligo ALTERNATE_WP_CRON no local (para evitar alguns avisos irritantes ), WP_DEBUG de ambos (se você não é um desenvolvedor) ou somente de transmissão (se você for), outro ini_set('display_errors', '0');para transmissão também pode fazer bem, formiga por último, conforme mencionado acima: WP_HOME e WP_SITEURL para o respectivo URL local / real.

Isso praticamente tudo, nada acima do clássico WordPress 'Isso é tudo, pare de editar!' linha...

O 192.168. parte permite que você faça alguns testes locais (por exemplo, de pads ou telefones) na rede local)

O $ GLOBALS ['is_local'] também pode ser útil no desenvolvimento do seu tema, para uma saída extra de depuração, etc ...

Frank Nocke
fonte
1
Você pode usar o WordPress esqueleto wp-config.php que define uma WP_LOCAL_DEVconstante para conseguir algo semelhante
icc97
1

Estou usando o plug-in backupbuddy há algum tempo. Permite fazer um backup do banco de dados e de todos os arquivos, fazer o download como um zip ou enviá-lo diretamente para outro servidor via FTP. Ele também localiza e substitui o URL para você. Normalmente, levo cerca de 5 minutos para percorrer todo o processo. E como todos os arquivos são compactados, o processo de upload / download é muito mais rápido. E não, eu não trabalho para eles, mas esse plug-in realmente facilitou todo esse processo.

gdaniel
fonte
1

Outra ferramenta útil para lidar com migrações de servidores para sites é a CLI do WordPress, este artigo tem uma boa visão geral do que ele pode fazer, mas especificamente a seção "Pesquisar e substituir" é útil para encontrar todas as referências ao URL do site antigo / dev :

Gerenciamento avançado de WordPress com WP-CLI

Rick Curran
fonte
0

Se você estiver tentando obter uma sincronização contínua, sugiro usar o rsync junto com um trabalho cron personalizado para reescrever qualquer URL ou dados específicos do site.

user92899
fonte
0

Depois de ter seguido essa resposta por um tempo, criei meu próprio pequeno plug-in - Pitta Migration . Os motivos são:

  1. De todas as idéias tentou aqui - o mais simples é o WP_HOMEe WP_SITEURLopções
  2. Eu então os uso para definir os dois wp_optionsURLs correspondentes - que abrangem quando plugins / temas os ignoram
  3. Isso me dá 100% de confiança no que está sendo alterado no meu banco de dados
  4. Isso também funciona em várias plataformas (todos esses scripts do bash não funcionam muito bem no Windows)
  5. É fácil entender o que o plug-in está fazendo
  6. Não há nenhuma configuração além das duas constantes - faça uma importação mysqldump e mysql para o banco de dados local e o plug-in vê que a constante e a tabela diferem e as atualiza para corresponder
  7. Nenhuma pesquisa e substituição de texto
  8. Sem chance de prejudicar seu banco de dados - eu uso o objeto de banco de dados do WordPress para fazer duas atualizações e nada mais
  9. Ele funciona muito bem com coisas como o WordPress Skeleton, onde você pode ter tudo no controle de origem e definir uma configuração local
  10. Coloquei-o no diretório de plugins do WordPress e no Github para que ele seja gratuito, de código aberto, fácil de instalar e fácil de instalar
  11. Uma vez instalado, você pode esquecê-lo e ele deve "apenas funcionar" - você recebe um aviso para dizer que o banco de dados foi modificado
  12. Deve funcionar com qualquer processo de backup / FTP / restauração
icc97
fonte
0

Na minha opinião, a maneira mais fácil de seguir é a transferência manual. Basta copiar a pasta wp-content e o arquivo wp-config.php para o novo host. Exporte o banco de dados do host antigo e importe-o em um novo banco de dados do novo host.

No novo banco de dados do host, vá para a tabela wp-option e altere o URL do site e o URL do Blog para Novo endereço do host do host antigo. como http: // localhost / wp até http://example.com

Agora, no arquivo wp-config, basta alterar as informações do banco de dados e do usuário com novas informações do host.

Agora faça o login no novo wp-admin e acesse as configurações e salve o link permanente.

Você terminou. Eu acho que isso é simples sem o uso de plugins.

Eu tentei diferentes tipos de plugins e todos eles têm muitos tipos de problemas.

Então, eu prefiro essa transferência manual simples, que é mais fácil, eu acho.

Md. Amanur Rahman
fonte