WordPressをGit管理する方法【決定版】

プログラミング

WordPressで制作や開発をしている人にとって悩ましいのが「WordPressをどうやってGit管理するのか」

検索してもパッとしないものばかりだったので、考えたのが以下のやり方です。

  1. 本番環境のサイト全体のデータを、ステージングやローカル環境に同期(WordPressのプラグインを使用)
  2. ローカルで開発したものをリモートリポジトリにPush
    →ステージング、本番環境へPull

この環境を構築するために、以下のことが必要となります。

本番のデータをSTG・ローカル環境に同期
  1. ローカル環境を構築する
  2. 本番のデータを同期する
  3. ローカル環境で制作・開発する
  4. リモートリポジトリにPushする
ローカルで開発したものSTG・本番環境に上げる
  1. (任意)PCとサーバーをSSH接続する
  2. サーバーにGitをインストールする
  3. サーバー内とGitプラットフォームをSSH接続する
  4. リモートリポジトリからPullする

順に解説していきます。

本番のデータをSTG・ローカル環境に同期する手順

ローカル環境を構築する

すでにローカル環境を構築している人も多いと思いますが、まだ構築してない人は「Local」を使うと簡単です。インストーラーをダウンロードしてポチポチするだけ。

Localの使い方は以下の記事で紹介しています。
» 【簡単10分】WordPressのローカル環境を構築する方法

本番のデータを同期する

本番環境のデータを、ステージングやローカル環境に同期するときには、「All-in-One WP Migration」というプラグインを利用すると便利です。

やり方は、サイトのバックアップファイルをダウンロードして、ステージングやローカル環境で復元するだけ。

ただし、サイトの容量が512MBを超えると有料のプラグインが必要となってくるのでご注意ください。

 

また、お金はかかりますが、別途All-in-One WP Migrationの「FTP Extension」や「Google Drive Extension」を利用すれば、定期的に自動でサーバーやGoogleドライブにバックアップを保存できます。

WordPress本体やテーマのアップデートで挙動がおかしくなったときでも、すぐに巻き戻せるので便利です。

なお、All-in-One WP Migrationの使い方は、以下の記事で紹介しています。
» WordPressのバックアップ用プラグインとしてAll-in-One WP Migrationを使う方法

ローカル環境で制作・開発する

ローカル環境に本番のデータを同期できたら、制作や開発を開始します。

リモートリポジトリにPushする

制作・開発が完了したらGitのリモートリポジトリにPushします。

おそらく多くの方は制作や開発の過程でローカルのGitリポジトリを作成していると思うので、詳しい説明は省きます。

 

ローカルで開発したものをSTG・本番環境に上げる手順

(任意)PCとサーバーをSSH接続する

いちいちFTPソフトでコンソールを起動して操作するのは面倒です。

なので、必須ではないですが、あらかじめPCとサーバーをSSH接続しておくことをおすすめします。

なお、WindowsPCとエックスサーバーのSSH接続の方法については以下の記事にまとめました。
» WindowsのPCとエックスサーバーをSSH接続する方法

サーバーにGitをインストールする

エックスサーバーなど、レンタルサーバーによってはデフォルトでGitがインストールされています。

しかし、バージョンが最新でなかったり、サーバーによってはGitがインストールされていないことがあるので、Gitのインストール方法を紹介します。

手順としては以下の3つ。

  1. gettextのインストール
  2. Gitの最新版のインストール
  3. パスを通す

以下、エックスサーバーの場合のコマンドを紹介します。別のサーバーだとディレクトリ名が違ってくると思うので、適宜変更してください。

gettextのインストール

gitのインストールにはgettextが必要なので、まずgettextをインストールします

#インストールディレクトリ
$ mkdir ~/opt
#作業ディレクトリ
$ mkdir ~/sysad

$ cd ~/sysad
$ wget "http://ftp.gnu.org/gnu/gettext/gettext-latest.tar.gz"
$ tar zxvf gettext-latest.tar.gz

#解凍されたディレクトリへ移動しmakeしてinstall 解凍ディレクトリ名はバージョンによって異なります
$ cd gettext-0.21
$ ./configure --prefix=/home/(ユーザーID)/opt
$ make install

##インストールされたか確認
### gettext (GNU gettext-runtime) 0.21 のようにバージョンが表示されれば成功
$ ~/opt/bin/gettext --version

Gitの最新版のインストール

#git install
$ cd ~/sysad/
$ wget https://codeload.github.com/git/git/zip/master
$ unzip master
$ cd git-master
$ autoconf
$ ./configure --prefix=/home/(ユーザーID)/opt
$ make all
$ make install

##インストールされたか確認
### Gitのバージョンを表示
$ ~/opt/bin/git --version

パスを通す

gitは~/opt/bin/gitへインストールされていますが、都度/opt/bin/gitは打つのが手間なのでpathを通しておきます。
これにより「$ /opt/bin/git clone git@hogehoge」ではなく、「$ git clone git@hogehoge」で実行できるようになります。

まずは.bashrcのバックアップをとって、.bashrcを開きます。

##バックアップの作成
$ cp ~/.bashrc ~/.bashrc.bk

##編集の実行
### export PATH=$HOME/opt/bin:$PATH の追加
$ vi ~/.bashrc

.bashrcの中身を以下のように変更します。

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
export PATH=$HOME/opt/bin:$PATH

変更内容を反映させ、確認します。

##変更内容の反映
$ source ~/.bashrc

##確認

### ~/opt/bin/git --version と同一の結果になっていればOK
$ git --version

(引用元)XSERVERでssh接続→git最新版インストール→php5.6でlaravel deployまで|Qiita

サーバー内とGitプラットフォームをSSH接続する

サーバーにSSH接続したままで作業を継続します。

手順としては、以下の4つです。

  1. Gitのグローバル設定
  2. 認証鍵の作成
  3. Gitのconfigを追加
  4. GitHubやGitLabなどのプラットフォームに公開鍵を登録

Gitのグローバル設定

以下のコマンドを入力します。

$ git config --global user.name "[あなたの名前]"
$ git config --global user.email [メールアドレス]

[あなたの名前]と[メールアドレス]は、それぞれ自分のものに変更してください。

認証鍵の生成

「.ssh」フォルダを作成し、認証鍵を生成します。

$ mkdir ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t rsa -f id_rsa -b 4096 -C "[メールアドレス]"

すると、パスワードの入力を促されます。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

何も入力しなければ、パスワードなしとなります。
パスワードを設定したほうがセキュリティは強固になりますが、面倒くさいのでパスワードを設定しなくてもOKです。

パスワードを設定しない場合は、そのままEnterを押します。

以下のメッセージが表示されれば認証鍵の生成は完了です。

Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa_.pub.
The key fingerprint is:
[キーNo.] [メールアドレス]
The key's randomart image is:
+---[RSA 4096]----+
|                 |
|       . .       |
|      * o .      |
|   o B B o .     |
|  . O B S +      |
|  .+ O + + .     |
|  ooO =.o o o    |
|  EO.= +oo +     |
|  +o*oo...o      |
+----[SHA256]-----+

Gitのconfigを追加

以下のコマンドを入力して、.ssh内に「config」というファイルを作成します。

$ touch config

以下のコマンドで、「config」ファイルに設定内容を記載します(GitLabなど別のプラットフォームの場合はホスト名などを変更してください)。

$ echo Host github.com >> config
$ echo  User git >> config
$ echo  Hostname github.com >> config
$ echo  IdentityFile ~/.ssh/id_rsa >> config
$ echo  IdentitiesOnly yes >> config

GitHubやGitLabなどのプラットフォームに公開鍵を登録

以下のコマンドで、認証用の鍵番号を表示します。

$ cat id_rsa.pub

表示された「ssh-rsa」から始まる番号をコピーし、各Gitプラットフォームに登録します。

GitHubの場合

右上のアイコンをクリックしてメニューを開き、「Settings」->「SSH and GPG keys」を選択し、右上の「New SSH key」ボタンをクリックすると以下の画面が表示されます。

Keyのところに、先ほどコピーした「ssh-rsa」から始まる番号を貼り付けます。
Titleはサーバー名などにしておくと分かりやすいと思います。

「Add SSH Key」のボタンを押せば登録完了です。

最後に以下のコマンドで、SSH接続ができるかどうかを確認します。

$ ssh -T github.com

以下のように聞かれたら、「yes」と入力します。

The authenticity of host 'github.com [IPアドレス]' can't be established.
ECDSA key fingerprint is [キーNo.]
Are you sure you want to continue connecting (yes/no)?

以下のように表示されればOKです。

Hi [GitHub名]! You've successfully authenticated, but GitHub does not provide shell access.
GitLabの場合

右上のアイコンをクリックしてメニューを開き、「設定」->「SSH鍵」を選択します。

表示された画面の「キー」のところに、公開鍵の番号を入力します。
Titleはサーバー名などにしておくと分かりやすいと思います。

有効期限を設定したくなければ、✕ボタンを押して期限を消します。「キーを追加」のボタンを押せば登録完了です。

最後に以下のコマンドで、SSH接続ができるかどうかを確認します。

$ ssh -T gitlab.com

以下のように表示されればOKです。

Welcome to GitLab, @[ユーザーID]!

(引用元)Visual Studio Code(VSCode)とGitLabを連携させる|転職のみちしるべ

リモートリポジトリからサーバー上にPull

最後に、ステージングや本番環境の、Git管理しているディレクトリで

  • Gitリモートリポジトリを作成
  • リモートリポジトリからPull

すれば完了です。

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