Atualmente, estou desenvolvendo meu WordPress localmente, enviando meu código para o GitHub com o Git e, em seguida, transferindo o SSH para o meu servidor e fazendo um "git pull" para atualizar meu código. Essa é uma boa opção para a implantação de código em um site WordPress (nesse caso, obviamente, tenho acesso no nível da raiz ao meu servidor.) Conheço coisas como Capistrano, mas isso seria um exagero para a implantação em um site WordPress? Como tirar o máximo proveito do Git / GitHub neste caso?
deployment
git
github
Matt
fonte
fonte
Respostas:
Eu uso o git para isso e acho que funciona muito bem. Algumas sugestões:
.gitignore
arquivo..gitignore
arquivo para evitar que as configurações do wordpress de desenvolvimento substituam as de produção.Considere adicionar um
post-receive
gancho git para fazer o checkout de suas atualizações automaticamente no diretório que você usa para publicar o wordpress através do seu servidor web (por exemplo/var/www
). Isso permite que você verifique apenas os arquivos, evitando que os metadados do git encontrem o caminho da raiz do documento do servidor da web e também significa que você pode adicionar alterações de permissão no gancho pós-recebimento, para que suas permissões sejam sempre consistentes. Um exemplo está incluído abaixo:fonte
unset GIT_INDEX_FILE
um erro de digitação?Eu recomendo configurar o Capistrano - é um pouco de trabalho inicial na primeira vez, mas depois disso você pode usá-lo facilmente para novas configurações.
As principais vantagens são
Estou adicionando um conjunto de scripts capistrano para mostrar como eu configuro as coisas.
Capfile
deploy.rb
e, finalmente, um arquivo de ambiente de amostra (se você usar a gema de vários estágios, poderá ter uma delas para cada estágio do seu ambiente, por exemplo, local, preparação, produção)
config / local.rb
Esses arquivos podem não funcionar sem ajustes, e você precisará de algum conhecimento básico do Capistrano, mas espero que ajude algumas pessoas.
Este foi o primeiro tutorial que usei que me levou a usar o Capistrano e o WordPress: http://theme.fm/2011/08/tutorial-deploying-wordpress-with-capistrano-2082/
fonte
git post-receive
gancho é o caminho a percorrer!Na verdade, fiz uma apresentação do WordCamp sobre esse tópico. Em vez de me repetir, aqui está um screencast e um script de implantação muito simples para acompanhar o que discuti.
Em resumo, eu uso o GitHub para hospedar o repositório e uso um webhook para implantar alterações com base na referência do git. Isso permite que você use o modelo de ramificação git de Vincent Driessen e permite que você tenha ilimitados webheads, servidores de teste, servidores de teste etc., tudo com implantação automatizada. Também abordo a manutenção do wp-config.php sob controle de versão, mantendo versões separadas de desenvolvimento / produção (renomeando os arquivos e simbolizando).
fonte
Eu sei que essa pergunta é um pouco mais antiga, porém, como eu não vi isso como resposta aqui, gostaria de compartilhar o que normalmente faço para configurações e implantações baseadas em git de site único e está funcionando muito bem, também com o trabalho de vários dispositivos, locais e com vários desenvolvedores (todos com seus próprios repositórios locais em que operam, como é comum no git).
Posso sugerir calorosamente a seguinte configuração:
Também é descrito em (se você precisar de um segundo recurso para envolvê-lo):
Basicamente, funciona (com pelo menos três repos) por:
Quando o trabalho é concluído, você pressiona o repositório remoto remoto do qual clonou. O repositório simples possui ganchos para sincronizar com o repositório ativo (nos códigos acima chamados de prime ).
Como configurações específicas do Wordpress no repositório, tenho o seguinte
.gitignore
:O resto incl. a configuração do plugin e do tema eu mantenho sob controle de versão / configuração. Isso me permite rastrear facilmente as alterações e revisar o código antes de usá-lo ao vivo. Também posso mesclar mais facilmente contra árvores remotas com minhas próprias alterações. Isso é especialmente útil no núcleo do Wordpress, disponível no Github .
Isso funciona muito bem para a maioria das minhas necessidades do Wordpress. O repositório simples impede que você faça alterações conflitantes. Ele também é sincronizado com uma cópia remota antes de atualizar o site ativo. Isso significa que atualizar o site ao vivo normalmente é bastante rápido. Por causa dos ganchos, você pode até chamar os ganchos de atualização do Wordpress depois, se quiser.
Se não tiver experimentado o quanto isso pode ser melhorado com os ganchos do Github, mas normalmente não preciso deles, pois o código está sob controle de versão local, não o Github.
Para configurar esse sistema pela primeira vez, você deve avaliar se possui todas as ferramentas disponíveis em seu host remoto:
O tempo de configuração pela primeira vez deve ser possível dentro de uma duas horas, incl. todo o ambiente e você primeiro publica push.
Dependendo do seu host, você também pode querer proteger o
.git
diretório do acesso à web. Aqui está um exemplo de.htaccess
código que faz com que o Wordpress seja colocado dentro de um subdiretório, o que deixa espaço no repositório não publicado on-line (útil):Em resumo, tudo o que não está no diretório público não está online. Dentro do diretório público pode estar a base de código wordpress, por exemplo, para o
.htaccess
que você precisa então:Isso impede o acesso direto ao público . Parte deste .htaccess -foo você pode encontrar descrito aqui: Os pedidos para .htaccess devem retornar 404 em vez de 403 . Para as variáveis de ambiente, você precisa testar se isso funciona em seu ambiente. Além disso, você precisa decidir se coloca isso sob controle de versão ou não.
Se você tem mais controle sobre a hospedagem, pode fazer mais coisas aqui (e diferentemente / mais otimizado); os exemplos acima são direcionados para ambientes típicos de hospedagem compartilhada (que oferecem GIT, alguns usuários dizem que você pode instalá-lo facilmente como bem, normalmente peço aos meus anfitriões que o ofereçam, porque prefiro que eles tomem cuidado com isso.
No lado negativo, isso tem alguns dos problemas comuns também descritos nas outras respostas. Uma coisa de que não tenho orgulho, mas o que funciona é alterar o host de desenvolvimento em seu arquivo host para que o servidor de banco de dados aponte para a cópia de desenvolvimento. Então você pode manter uma configuração de banco de dados. Não é muito legal esp. por causa das credenciais.
Backups automáticos
No entanto, normalmente não me importo muito aqui, mas, em vez disso, os backups diários são executados nos sistemas remotos, que são incrementalmente armazenados em outro local remoto. Isso é fácil e barato e permite restaurar a instalação do Wordpress, bem como os uploads de arquivos, o banco de dados e o repositório git. Também para os meus comandos de backup, posso não estar perfeitamente bem, mas eles funcionam para mim:
O que eu sugiro aqui é que você mantenha os processos em torno da instalação do Wordpress fora do Wordpress. Eles precisam ser executados em um sistema específico, para que você normalmente não os tenha dentro do aplicativo (por exemplo, o aplicativo pode ficar inativo, mas é necessário que eles continuem funcionando).
Habilitado para trabalho em equipe
Outro benefício interessante é que seu site já está ativado para o trabalho em equipe. Graças ao repo bare adicional, você não pode fazer muita coisa errada e pode compartilhar ramificações remotas além de uma ramificação principal ou ao vivo com seus colegas.
fonte