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