エックスサーバーに共有リポジトリを設置してgit pushで本番環境に自動デプロイする方法

プログラミング

エックスサーバーには元々gitがインストールされています(バージョンは1.8.3くらい)。
今回は元々サーバー上にインストールされているgitを使ってサーバー上に共有リポジトリを設置することで、ローカルでテーマファイルを編集した際にターミナルクライアントからgit pushコマンド一発で本番環境にデプロイできるようにしていきたいと思います。

スポンサーリンク

エックスサーバー上のワードプレステーマをgitで管理

エックスサーバーに共有リポジトリを設置する

まずはエックスサーバーにSSH接続をしていきます。
エックスサーバーへのSSH接続については以下の記事を参照してください。
以下の記事のように、.ssh/configファイルを作成しておくと作業が楽になります。

エックスサーバーへのSSH接続を~/.ssh/configファイルで管理する
エックスサーバーのサーバー上でファイル操作や設定ファイル等のテキスト編集を行う場合に、SSHでの接続が必要になります。 SSH接続をするための手順としては、エックスサーバーの場合はサーバーのコントロールパネルよりSSH設定を行い、生成され...

public_html以下にワードプレスがアップロードされていると思います。
共有リポジトリは外部からアクセスできない場所に設置することが望ましいので、今回はpublic_htmlと同階層のディレクトリに設置していきます。
public_htmlは、ワードプレスをインストールした対象ドメイン名のディレクトリ(独自ドメイン.comなど)内にあります。
今回は、対象ドメイン名をhogehoge.comとして進めます。

ls -laコマンドを入力すると、public_htmlというディレクトリが確認できると思います。

$ cd ~/hogehoge.com/

public_htmlと同階層のディレクトリへ移動したら、

$ git init --bare --shared wordpressthemes.git

をコマンド入力して共有リポジトリを作成します。

適宜ls -lapwdコマンドを使用し、カレントディレクトリ(現在のディレクトリ)のディレクトリ構成やカレントディレクトリのフルパスを確認して作業をすると効率的です。

wordpressthemesの部分は好きな名前をつけてください。ちなみに今回はgitでワードプレスのテーマを管理したいので、このような名前にしています。
–bareと–sharedオプションをgit initにつけることが共有リポジトリとしての宣言のようなものです。
ちなみにこの共有リポジトリでは、最初の設定が終わればほとんど何もすることはありません。

エックスサーバー上のgitで管理したいワードプレステーマのディレクトリにgit remoteでリモートリポジトリを追加

//まずはテーマファイルのあるディレクトリへ移動
$ cd ~/hogehoge.com/public_html/wp-content/themes

// git initでgitリポジトリを新規作成 $ git init // リモートリポジトリを追加 $ git remote add origin ~/hogehoge.com/wordpressthemes.git $ git add . $ git commit -m "initial commit" $ git push origin master

続いて、wordpressthemes.git内にあるhookspost_receiveファイルを作成します。

$ cd ~/hogehoge.com/wordpressthemes.git/hooks
// エディタを開きます
$ vi post-receive

viエディタは、iで入力モード、Escでコマンドモードに切り替えられ、入力モードにして以下を記述していきます。
記述が完了したら、Escでコマンドモードに切り替えて、:wを押して保存します。

#!/bin/sh

git --git-dir=~/hogehoge.com/public_html/wp-content/themes/.git --work-tree=~/hogehoge.com/public_html/wp-content/themes pull origin master

サーバー側での作業はこれで終わりです。
続いてローカルでサーバー上のテーマファイルを編集するための作業を行なっていきます。

ローカルに共有リポジトリを git clone で取得する

git cloneする場合に、エックスサーバーにSSH接続をする必要があるので、今回は.ssh/configファイルを事前に作成して作業しています。

以下のコマンドで共有リポジトリをthemesというファイル名で取得します。

$ git clone ssh://xserver/~/hogehoge.com/wordpressthmemes.git themes

問題なくgit cloneが完了すると、ls -laコマンドを入力した際にthemesというディレクトリが確認できます。
あとは、このthemesディレクトリを編集して下記のコマンドを入力すれば、エックスサーバー上の本番環境に自動的に反映されます。

$ git add .
$ git commit -m "edit themes style"
$ git push

git pushコマンドを入力して、remote: fatal: ~などのメッセージがでなければ無事に成功です。
実際に自分のサイトにアクセスしてみて、編集した内容が反映されているか確認してください。
以上です。

エックスサーバー

ワードプレスを運営するならエックスサーバーがおすすめ。
非常に使いやすいユーザーインターフェースに、拡張性も抜群。
今なら10日間無料お試し期間やドメイン無料キャンペーンを行なっています。

タイトルとURLをコピーしました