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?
customization
deployment
production
staging
Ryan Gibbons
fonte
fonte
Respostas:
@ 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:
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.php
que normal, comentando a quatro (4) defineDB_NAME
,DB_USER
,DB_PASSWORD
eDB_HOST
e, em vez registrar os padrões para webhosts e, em seguida, registrar informações sobre cada própria hospedagem. Aqui está awp-config.php
aparê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.dev
domínios de nível superior não roteáveis para facilitar o desenvolvimento do dia a dia. No Mac, o VirtualHostX facilita isso):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 dewp-config.php
ser chamado.Depois de atualizar o seu
wp-config.php
, você pode simplesmente usar o atalho do URLwp-migrate-webhosts
para ir para a tela de administração da seguinte forma: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! ):
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_webhosts
açã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
,domain
etc. Um exemplo perfeito pode estargooglemaps_apikey
onde 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, umgooglemaps_apikey
elemento em sua matriz register_webhost () e um pequenomigrate_webhosts
gancho 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.
fonte
Quando possível, eu definir
WP_HOME
eWP_SITEURL
emwp-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
fonte
Meu hack favorito; adicione uma configuração ao seu
/etc/hosts
para 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.
fonte
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.
fonte
O WP Engine é um novo serviço que oferece "One-Click Staging":
Parece uma maneira muito fácil de mudar rapidamente do desenvolvimento para a produção, especialmente com um site já ativo.
fonte
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.
fonte
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.
fonte
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.
fonte
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 novofonte
Dois projetos do Google Summer of Code que têm um objetivo semelhante:
fonte
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.
fonte
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.
fonte
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
Esse script funciona bem com o WP-Skeleton de Mark Jaquith, e aproveita
mysqldump
,git
ersync
para sincronizar todo o site - banco de dados, código e mídia - em duas etapas fáceis:fonte
Estou usando http://wordpress.org/plugins/wp-clone-by-wp-academy/ . Funciona muito bem!
Apenas 3 etapas:
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.
fonte
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:
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:
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:
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?
fonte
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.
fonte
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".
fonte
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/
fonte
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.
fonte
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.
fonte
Deixe-me dar um dos meus favoritos :-)
... 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 ...
fonte
WP_LOCAL_DEV
constante para conseguir algo semelhanteEstou 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.
fonte
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
fonte
Esta é a maneira mais fácil de todas: https://themes.artbees.net/docs/website-migration/
Leva apenas dois cliques. Um para exportar, outro para importar.
É possível usando o plug-in Tudo em um WP Migration. O link acima mostra como usá-lo.
fonte
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.
fonte
Depois de ter seguido essa resposta por um tempo, criei meu próprio pequeno plug-in - Pitta Migration . Os motivos são:
WP_HOME
eWP_SITEURL
opçõeswp_options
URLs correspondentes - que abrangem quando plugins / temas os ignoramfonte
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.
fonte