Help us understand the problem. What is going on with this article?

git pushしたら自動的に本番環境でgit pull されるWordPress(KUSANAGI)の共同開発環境

はじめに

過去にWordPressサイトを共同開発することがありました。バージョン管理はをgithubでやっていましたが、本番への反映が面倒だったので自動化したお話

これまではgithubにソース(テーマファイル)をgit pushしたあとに
サーバのストレージをMacにsshfsコマンドを使いマウントしてからgit pullするという面倒なことをやっていた

環境

  • Mac OS MAMPにローカルサーバを立ててテストをしていた
  • 本番環境へのサーバへSSHログイン可能
  • 本番環境はKUSANAGIでラクラク構築

実装

サーバ側の作業1

ログインユーザはkusanagi
リポジトリに使うディレクトリを作成

$ mkdir /var/git_service/wp_dev/hogehogehuga.com.git/

リポジトリに移動

$ cd /var/git_service/wp_dev/hogehogehuga.com.git/

Macでの作業

$ cd /Applications/MAMP/htdocs/wordpress/wp-content/themes/hogehogehuga.com/
$ git init
$ git add .
$ git commit -m '1st'

.gitの設定ファイルを変更

その一番下の行に kusanagi@hogehogehuga.com:/var/git_service/wp_dev/hogehogehuga.com.git を追加

$ vi .git/config
.git/config
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = git@github.com:merarli/wp_hogehogehuga.com.git
fetch = +refs/heads/*:refs/remotes/origin/*
url = kusanagi@hogehogehuga.com:/var/git_service/wp_dev/hogehogehuga.com.git

pushしてgithubとサーバのリポジトリにファイルがあれば成功

サーバ側の作業2

サーバのリポジトリからクローンする

$ cd /home/kusanagi/hogehogehuga.com/DocumentRoot/wp-content/themes/
$ git clone /var/git_service/wp_dev/hogehogehuga.com.git

クローンしたファイルの中にデータがあるか確認

$ cd /home/kusanagi/hogehogehuga.com/DocumentRoot/wp-content/themes/hogehogehuga.com
$ ls

githubにもpushされているか確認(Macのプラウザで確認)

自動化設定

サーバのリポジトリの設定ファイルを変えるために移動

$ cd /var/git_service/wp_dev/hogehogehuga.com.git/hooks

post-update.sampleをpost-updateとしてコピー

$ cp post-update.sample post-update

設定ファイルを以下のように設定

$ vi post-update
post-update
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".

cd /home/kusanagi/hogehogehuga.com/DocumentRoot/wp-content/themes/hogehogehuga.com/
git --git-dir=.git pull origin master

実行権限を与える

$ chmod a+x post-update

実行して動けば成功

$ ./post-update
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away