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 push producao