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

エックスサーバーにインストールしたWordPressのテーマをGitで管理

More than 1 year has passed since last update.

やりたいこと

今までは、ローカルで作成・更新したWordPressのテーマを、FTPで本番環境であるエックスサーバー上にアップしていた。
これをGitで行う形にする。
エックスサーバー上にリモートリポジトリを作り、ローカルにクローンを作る。
ローカルで作業した分をリモートにプッシュすると、本番環境に反映されるようにする。

エックスサーバーにGitを導入する手順 | vdeep

メリット

  • Gitによるバージョン管理ができる。作業時にテーマのファイルやフォルダをコピペして「名前_201808...」にリネーム、みたいなことをしなくて済む。
  • FTPソフトを使う必要がなくなる。間違って上書きとか、余計なファイルを本番にアップしてしまった等のミスが無くなる。

一度仕組みさえ作れば楽。そして安心。

環境・使用ツールについて

  • OS: Windows 8.1
  • 開発環境: XAMPP 7.2.6
  • ツール:
    • Git for Windows: Windows版Git。
    • SourceTree: Gitクライアントソフト。ローカル(自分のPC)でのGit管理に使う。
    • RLogin: ターミナルソフト。レンタルサーバーでGitを導入する諸々の設定作業に必要。
    • その他: FTPソフト(WinSCPとか)。

手順

※ツールのインストールやSSH接続の説明は割愛。

エックスサーバーにSSH接続のやり方については以下を参照。
RLoginでエックスサーバーにSSHする方法 - そんなこと猫でもできる

1. 本番環境Gitの作成

RLoginでエックスサーバーにSSH接続。
以下、コマンド。

cd ~/{ドメイン名}/public_html/wp-content/themes/{テーマのフォルダ名}
git init --separate-git-dir=/home/{サーバーID}/{ドメイン名}/theme.git

リポジトリは非公開ディレクトリに作成。
リポジトリのフォルダ名は「theme.git」。※任意のフォルダ名でも可。

2. 更新管理用Gitの作成

エックスサーバーで本番環境Gitの作成をしたら、次は更新管理用Gitを作成する。
フォルダ名は「theme.remote.git」。※任意のフォルダ名でも可。

cd ~/{ドメイン名}
mkdir -m 755 theme.remote.git
cd theme.remote.git
git clone --bare ~/{ドメイン名}/theme.git/ .

3. 本番環境Gitに更新管理用Gitを追加

cd ~/{ドメイン名}/theme.git/
git remote add origin ~/{ドメイン名}/theme.remote.git/

ここでエックスサーバーでの作業は一旦終了。次はローカルの設定作業。

4. テスト環境Gitの作成

SourceTreeを起動し、Cloneする。

■ 元のパス/URL
ssh://{サーバーID}@{サーバーID}.xsrv.jp:10022/home/{サーバーID}/{ドメイン名}/theme.remote.git

■ 保存先のパス
XAMPPにインストールしたWordPressのフォルダ内。テーマフォルダとか。

例)
C:\xampp\htdocs\{ドメイン名}\wp-content\themes\{テーマ名}

■ 名前
任意。「{ドメイン名} (theme)」や「{サイト名}のテーマ」とか。

5. 更新管理用Gitのフックを使って、プルを自動化する

■ 5-1. 「post-receive」ファイルを作成する。※拡張子は無い。
エディタを開いて、以下を記述し、名前「post-receive」で保存。(文字コードはUTF-8、改行コードはLFで)

#!/bin/sh
cd ~/{ドメイン名}/public_html/wp-content/themes/{テーマ名} || exit
unset GIT_DIR
git pull origin master

■ 5-2. 以下のディレクトリ以下にアップする。
/home/{サーバーID}/{ドメイン名}/theme.remote.git/hooks/

■ 5-3. 「post-receive」のパーミッションを755に変更。
FTPソフトを使うか、コマンドを打つ。

chmod 755 post-receive

6. 動作確認

ローカルで適当なファイルを作成・更新してコミット&プッシュすると、変更内容が本番環境に反映される...はず。

7. 補足

Gitに管理されたくないファイルやフォルダがある場合、「.gitignore」ファイルを作る必要あり。
[Git] SourceTreeで指定フォルダをコミット対象外にする.gitignore設定 | tande lab.

参考ページ

Why not register and get more from Qiita?
  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
No 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
ユーザーは見つかりませんでした