エックスサーバーには元々gitがインストールされています(バージョンは1.8.3くらい)。
今回は元々サーバー上にインストールされているgitを使ってサーバー上に共有リポジトリを設置することで、ローカルでテーマファイルを編集した際にターミナルクライアントからgit push
コマンド一発で本番環境にデプロイできるようにしていきたいと思います。
エックスサーバー上のワードプレステーマをgitで管理
エックスサーバーに共有リポジトリを設置する
まずはエックスサーバーにSSH接続をしていきます。
エックスサーバーへのSSH接続については以下の記事を参照してください。
以下の記事のように、.ssh/configファイルを作成しておくと作業が楽になります。
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 -la
やpwd
コマンドを使用し、カレントディレクトリ(現在のディレクトリ)のディレクトリ構成やカレントディレクトリのフルパスを確認して作業をすると効率的です。
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内にあるhooks
にpost_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: ~
などのメッセージがでなければ無事に成功です。
実際に自分のサイトにアクセスしてみて、編集した内容が反映されているか確認してください。
以上です。