Blog - Luiz Gustavo Web

Neste espaço me dedico a escrever artigos sobre GNU/Linux e desenvolvimento web.
Sinta-se à vontade.

Git em Hospedagem Compartilhada

23 de Julho de 2015

Para sites e determinados projetos que não requisitam alta performance do servidor, uma soluçao é a hospedagem compartilhada.

Utilizo controle de versão git para atualizar meus sites e, na hospedagem compartilhada, foi preciso algumas tarefas para o controle de versão funcionar corretamente.

Nesse artigo vou mostrar em 4 etapas como fiz isso na minha conta da Hostgator. Acredito que também seja possível se sua conta de hospedagem for de outra empresa.


1) Requisitos

Para começo de conversa, é necessário acesso SSH e o Git Client instalado.

Verifique se sua conta dispõe desses serviços.

Na Hostgator, precisei preencher um formulário para habilitar o acesso SSH que não vem como padrão.

Com o acesso habilitado, você pode acessar sua conta pela porta 2222:

ssh -p 2222 usuario@dominio

Como o projeto em sua conta de hospedagem será um repositorio git remoto, a comunicação também deverá ser feita pela porta 2222 ao enviar os arquivos modificados. Nesse caso, edite ou crie seu arquivo local ~/.ssh/config e adicione o seguinte conteúdo:

Host dominio
  Port 2222
  PreferredAuthentications publickey

Agora você pode se conectar via SSH sem precisar informar a porta:

ssh usuario@dominio


2) Chaves

Sua chave pública precisa estar no servidor do site. Ela está localizada em sua máquina no seguinte arquivo:

~/.ssh/id_rsa.pub

Caso este arquivo não exista, voce precisa gerar sua chave executando ssh-keygen no terminal.

Acrescente sua chave no seguinte arquivo da hospedagem:

~/.ssh/authorized_keys

Se este arquivo ainda não existe, você pode enviar sua chave pública realizando a seguinte operação local:

scp -P 2222 ~/.ssh/id_rsa.pub usuario@dominio:~/.ssh/authorized_keys


3) Configuração do Repositório na Hospedagem

No servidor, inicie o repositorio git onde você vai publicar seu site executando o seguinte comando:

git init

Depois, sete uma opção de configuração para aceitar pushs enviados para este diretório de trabalho:

git config receive.denyCurrentBranch ignore

Você tambem vai precisar setar um git hook que vai atualizar o diretório de trabalho após os pushs forem concluídos.

Para isso, salve o seguinte conteúdo em .git/hooks/post-receive:

#!/bin/sh
GIT_WORK_TREE=../ git checkout -f


Depois, torne-o executável com o seguinte comando:

chmod +x .git/hooks/post-receive


4) Repositório da Hospedagem como Remoto no Repositório Local

No seu repositório local, execute este comando:

git remote add producao usuario@dominio:CAMINHODOREPOSITORIO

Pronto! Agora você pode fazer suas modificaçoes, e ao final enviá-las para sua hospedagem com o seguinte comando:

git pushproducao

© 2006 - 2017