A maneira mais perfeita de transferir de Dev para Prod [duplicado]

4

Então, eu tenho trabalhado com o WordPress há um tempo agora e geralmente desenvolvo localmente e depois faço o upload de tudo para o meu servidor Prod ... no entanto, experimentei muitos resultados diferentes, especialmente ao usar plugins.

Eu normalmente exporto o banco de dados, mas coisas como a localização do domínio nem sempre parecem ser alteradas, mesmo depois de alterá-las dentro do administrador do WP antecipadamente.

Qual é a melhor maneira de mudar de Dev para Prod e manter tudo intacto?

Então, qual é a melhor maneira de mover seu site de um subdiretório no mesmo domínio?

Por favor, não me aponte na direção dos documentos do WP ... é o primeiro lugar que eu olhei.

    
por dcolumbus 18.11.2011 / 18:40

6 respostas

1

Qualquer diferença entre dev e prod é ruim. Aqui está o que eu faço:

  • Tenha um ip diferente para o servidor dev (seja ele interno, externo ou no computador local sem importância) - mas o servidor dev deve ter a mesma configuração (veja o parágrafo inferior)
  • Altere o arquivo hosts (veja aqui) (no seu ou em um computador de teste ou uma máquina virtual) para apontar para o ip do servidor dev
  • Resultado: as solicitações HTTP enviadas ao servidor dev têm o campo de cabeçalho do host definido como "example.com" exatamente como será para o servidor prod .

Este método remove duas diferenças frequentemente encontradas de outra forma:

  1. ter que alterar o nome do domínio
  2. com o código dev em um subdiretório, mas com o código prod no subdiretório root ou diff. Isso porque eu uso o git para transferir arquivos entre o dev e o prod.

.

.

O servidor dev está configurado exatamente como o servidor prod (veja Chef ou Puppet para saber como gerenciar os servidores programaticamente).

    
por Alexander Bird 21.11.2011 / 20:13
1

Na minha experiência, usei o plug-in Search and Replace para re-referenciar todos das referências ao domínio antigo. Não é a solução mais limpa, mas parece funcionar.

    
por GavinR 18.11.2011 / 18:44
1

Eu faço o mesmo tipo de desenvolvimento dev-prod em uma base regular, então desenvolvi algumas consultas padrão para ele:

  1. Atualize o URL do site:

    UPDATE wp_options SET opção_valor = substituir (valor_da_opção, '[DEV_URL]', '[PROD_URL]') WHERE nome_da_opção = 'home' OU nome_da_opção = 'siteurl' OU nome_da_opção = 'arquivo_arquivo_url';

  2. Atualize o caminho de upload:

    UPDATE wp_options SET opção_valor = '[SITE_ROOT_PATH] / wp-content / uploads' WHERE opção_nome = 'upload_path';

  3. Atualize os guias de postagem:

    ATUALIZAÇÃO wp_posts SET guid = substituir (guid, '[DEV_URL]', '[PROD_URL]');

  4. Atualizar URLs nas postagens:

    ATUALIZAÇÃO wp_posts SET post_content = substituir (post_content, '[DEV_URL]', '[PROD_URL]');

Substitua as variáveis entre colchetes por valores reais, por exemplo.

[DEV_URL] - > enlace [PROD_URL] - > enlace [SITE_ROOT_PATH] - > /home/client/domains/example-online-server.com/html

Isso normalmente cuida de qualquer referência ao ambiente de desenvolvimento. Você deve observar, no entanto, que:

i) Muitos plugins também armazenam urls absolutos em wp_options ou tabelas customizadas. Estes você tem que investigar caso a caso.

ii) Executar uma consulta de substituição de atualização (como 1. e 2. acima) deve quase certamente corromper os dados em campos serializados. Eu ainda não encontrei uma técnica limpa e rápida de fazer este substituto além de deixar os plugins associados fazerem a atualização. O sucesso disso depende da robustez do plugin.

    
por KalenGi 19.11.2011 / 00:17
0

Eu gosto de desenvolver em um subdiretório para que meus clientes tenham acesso ao site de teste. Quando eu estou pronto para publicar eu uso um plugin (recomendações abaixo) para duplicar a coisa toda para outro subdiretório e, em seguida, basta apontar o WordPress para carregar a partir do novo. Deixando a área de desenvolvimento ativa para testes.

Use um plugin como duplicador (gratuito) ou backupbuddy (pago). Veja também se a minha pergunta aqui ajuda você.

    
por Drai 18.11.2011 / 18:54
0

Não há uma maneira perfeita devido ao modo como o WordPress armazena conteúdo no banco de dados.

Para empurrar o código em torno dele, ele pode ser tão perfeito quanto usar o git / mercurial / svn ou até mesmo sobrescrever arquivos.

Mas esse não é o caso de qualquer conteúdo armazenado no banco de dados (plug-ins, postagens, categorias etc.) e não há uma maneira boa de sincronizar dois bancos de dados. Como mover facilmente uma instalação do WordPress do desenvolvimento para a produção

    
por Wyck 19.11.2011 / 00:40
0

Eu uso essa ferramenta de substituição de pesquisa:

enlace

Funciona para outros softwares e para o wordpress.

Quanto à implantação, eu configuro um ambiente no servidor que posso alternar por meio de mapeamento de domínio / vhosts para torná-lo ativo. O Dev de instalação está sempre em um servidor separado e nunca é feito ao vivo.

    
por Tom J Nowell 18.11.2011 / 18:56