# BLOG

xserverにgitで自動デプロイする環境を作る

参考

やること

  1. xserverにgitを入れる(参考1)
  2. publicじゃないところにベアリポジトリをつくる
$ cd ~/path/to/repos
$ git init --bare --shared myservice.git
  1. ローカルでつくったプロジェクトをこのリポジトリにプッシュする
# これはローカルでの作業
$ git init
$ git remote add xserver xserver:~/path/to/repos/myservice.git
$ git push xserver master
  1. xserver内で、プロジェクトを配置したい場所でベアリポジトリをcloneする
# ここからはサーバーでの作業
# 以下のコマンドでmyserviceディレクトリ配下にファイルを展開する
$ git clone myservice.git myservice
  1. post-receiveをつくる。実行権限もつける。
vi myservice.git/hooks/post-receive
chmod +x myservice.git/hooks/post-receive

なかみ

#!/bin/bash

cd ~/path/to/myservice
git --git-dir=.git pull ~/path/to/repos/myservice.git master

おまけ

プロジェクト内にpublic_htmlの役割を果たすディレクトリがある場合の設定

  1. 既存のpublic_html(または配下のサブドメインディレクトリ)を削除
  2. 代わりに同名のシンボリックリンクを貼る
$ cd ~/mydomain.com/public_html
$ rm -rf subdomain
$ ln -s ~/path/to/myservice/public subdomain