WordPressサイトをGitで管理する方法をわかりやすく解説
はじめに
WordPressは簡単にWebサイトを構築できることで多くの人に利用されています。
しかし、テーマやプラグインの変更を手動で行うと、万が一トラブルが起きた際に原因を特定しにくく、過去の状態に戻すのも難しくなりがちです。
そこで活用したいのがGitです。
Gitを使えば変更履歴を効率よく管理できるため、実務でもよく導入されています。
WordPressのファイルをGitで管理する方法を理解しておくと、安心して改修を進められたり、チームでの共同開発が行いやすくなったりと、多くのメリットが得られます。
ここでは、初心者の方でもわかりやすいように、Gitを用いたWordPressサイトの管理方法を段階的に解説していきます。
具体的なコード例や実務での活用事例もあわせて紹介していきますので、ぜひ参考にしてみてください。
この記事を読むとわかること
- WordPressサイトをGitで管理するメリットと基本的な流れ
- ローカル環境でのWordPressファイルのバージョン管理方法
- .gitignoreの設定例を用いた管理ファイルの選定ポイント
- GitHubなどのリモートリポジトリ連携とデプロイの考え方
- 実務で想定される運用シーンやトラブル対応のポイント
GitとWordPressの概要
WordPressをGitで管理するには、まず両方の基礎を理解しておく必要があります。
ここではGitとWordPressがそれぞれ何をするものなのかを簡単に整理し、併用する意味を考えてみましょう。
Gitとは
Gitとは、開発現場などで幅広く使われる分散型のバージョン管理システムです。
ファイルの変更履歴を細かく記録し、過去の状態に戻したり、複数人で同時に作業を行うことを容易にします。
実際の現場ではソフトウェア開発だけでなく、Web制作のテーマや設定ファイルの管理にも利用されます。
テキストファイルであれば変更点を差分として管理できるため、WordPressのように複数のPHPファイルやCSSファイルを操作する場合にも相性が良いといえます。
WordPressとは
WordPressは、ブログや企業サイトなど幅広いWebサイトの構築に使われるコンテンツ管理システム(CMS)です。
管理画面がわかりやすく、カスタマイズ性も高いのが特徴とされています。
WordPressサイトはPHPで書かれたコアファイルをはじめ、テーマやプラグインなど多数のファイルによって構成されています。
場合によってはメディアアップロードやカスタムコードが大量に増えてしまうので、ファイルの整理や変更履歴の追跡が難しくなることがあります。
Gitを使うメリットと注意点
WordPressでGitを使うことの一番のメリットは、変更点が明確にわかる点です。
テーマやプラグインをカスタマイズするたびにコミットしておけば、万が一レイアウトが崩れたり機能が動かなくなったときに、以前の状態へ戻しやすくなります。
一方で注意点としては、メディアファイルやWordPressのコアファイルまで全部をGit管理すると、リポジトリが大きくなりすぎる可能性があることです。
そのため、何をGitの管理下に置くのかをあらかじめ決めておく必要があります。
WordPressサイトをGit管理する準備
ここからは、実際にWordPressサイトをGitで管理するための準備について説明します。
ローカル環境を整えるところから始め、WordPressファイルをGitで扱う際の基本的な流れを見ていきましょう。
ローカル環境のセットアップ
WordPressの管理をスムーズにするためには、まずローカル環境で動かすのがおすすめです。
ローカルに構築したWordPressサイトをGit管理し、その後リモート環境へ反映するようにすると運用が楽になります。
ローカル環境のセットアップ方法の一例は以下のとおりです。
- PHPやMySQLなどを含むパッケージ(例:LAMP, MAMP, WAMPなど)を用意する
- WordPressをダウンロードしてローカルサーバーに配置する
- ブラウザでWordPressのインストール画面を開き、管理画面へアクセスできる状態にする
この時点ではまだGit管理は導入していません。
まずはローカルでWordPressが動作するかを確かめることが大切です。
次に、テーマやプラグインのファイルを扱う際にGitを利用する準備を行います。
WordPressファイルのGit管理方法
WordPressファイルをGitで管理する基本的な流れは、次の手順がよく採用されています。
- ローカルのWordPressディレクトリへ移動
git init
でGitリポジトリを初期化.gitignore
を作成し、追跡不要なファイルやフォルダを指定git add .
で追跡したいファイルをステージgit commit -m "初回コミット"
で変更を確定- リモートリポジトリを用意し、
git remote add
などで連携 git push
によってリモートへ変更を反映
ここでのポイントは、すべてのファイルを無条件にGit管理しないことです。
大量のメディアファイルをコミットしてしまうと、リポジトリが無駄に肥大化し、操作のたびに時間がかかってしまいます。
どのファイルをコミットするかは、後述の.gitignore
による設定が大切です。
gitignoreファイルの設定例
.gitignore
とは、Gitが追跡対象から外すファイルやフォルダを指定するためのファイルです。
WordPressサイトを管理するときによく除外される代表例を挙げてみます。
/wp-admin
/wp-includes
/wp-content/cache
/wp-content/backup
/wp-content/uploads
*.log
*.sql
/wp-admin
や/wp-includes
:WordPressのコア部分/wp-content/uploads
:画像や各種メディアが格納されるフォルダ*.log
や*.sql
:ログファイルやDBのエクスポートファイルなど
これらは変更の履歴を取る必要がないか、更新が頻繁すぎてバージョン管理に向かないことが多いです。
実務ではプロジェクトごとにあわせて細かい調整が必要ですが、基本的にはテーマやプラグインなど、自分で編集しているファイルを中心に追跡すると良いでしょう。
リモートリポジトリとの連携
WordPressのローカル管理が整ったら、次はリモートリポジトリと連携して共同開発やバックアップを行いやすくします。
GitHubやGitLabといったサービスを活用すると複数人での作業効率が向上し、履歴がクラウドに保存されるため、万が一の障害からも守られます。
GitHubなどのリモートリポジトリ
GitHubのようなサービスでリモートリポジトリを作成し、そのURLを使ってローカルのGitリポジトリと紐付けます。
例えば以下のような手順が一般的です。
- GitHub上で新規リポジトリを作成
- ローカルで
git remote add origin <リポジトリURL>
を実行 git push -u origin main
(またはmaster)でリモートへ反映
この作業をしておくと、ローカルでコミットした変更を git push
で簡単にリモートへアップロードできます。
逆にチームメンバーがリモートに新しい変更を追加した場合は、 git pull
で最新の状態を取得することが可能です。
デプロイワークフローの考え方
WordPressの変更をリモートに反映した後、本番サーバーへアップデートする方法はいくつか考えられます。
たとえば以下のような流れが挙げられます。
- ローカルでコードを修正、コミット
- リモートリポジトリ(GitHubなど)へプッシュ
- 本番サーバーへSSH接続して、
git pull
で最新の変更を取得 - ブラウザでサイトを確認して問題なければ運用継続
中には、自動化ツールを使ってプッシュからデプロイまでの手順を自動化する場合もあります。
ただし、WordPressのコアやユーザがアップロードしたメディアファイルは別で管理する必要があるため、本番サーバーへ適用する際に混乱しないように運用ルールを決めておくと安心です。
リモートリポジトリの運用時は、アクセス権限の管理にも注意が必要です。
例えばWordPressの設定ファイルなどにAPIキーやデータベースの接続情報が含まれていないか確認し、不要な機密情報をコミットしないように工夫しましょう。
実務での活用例
ここでは、Gitを使ったWordPress運用がどのように活用されるか、実務で考えられる具体的なシーンを挙げてみます。
チームでの共同開発や、不測の事態に備えたロールバックなどが代表的な活用例です。
チーム開発での運用
複数のメンバーが同じWordPressサイトを開発するとき、Gitを利用すると以下の点で便利です。
- 誰がどのファイルを変更したかが明確になる
- 変更が重複してコンフリクトしても解消方法がわかりやすい
- 作業途中で何かが壊れてもすぐに修正前の状態に戻せる
チーム内で役割を分担する際は、ブランチを活用します。
新機能開発用のブランチを作り、テストが完了したらメインブランチへマージするといったやり方は、トラブルを最小限に抑えるのに役立ちます。
WordPress本体やテーマ、プラグインなどファイル数が多くても、コミットを小まめに行うことで作業履歴が分かりやすくなるでしょう。
トラブル時のロールバック
WordPressはテーマやプラグインを追加することで機能拡張しやすい半面、複数のプラグインの相性などによって予期せぬ不具合が起こることがあります。
Gitでバージョン管理しておけば、特定のコミットまで巻き戻すだけでトラブル前の動作を再現できます。
以下はロールバックの大まかな手順例です。
- サイトが不具合を起こす前のコミットを確認
git checkout <コミットID>
またはブランチ名を切り替え- 不具合の原因箇所を特定し、解消後に再度コミット
このように、Gitを使ったロールバックは変更点を比較しながら原因を特定しやすいのが特徴です。
日頃からコミットメッセージを明確に書く習慣をつけておくと、さらにトラブルシューティングが楽になります。
環境に合わせてMySQLのデータベースもバックアップしておくと、より安全に過去の状態を復元できます。
テーマやプラグインのファイルだけでなく、データベースのリストア手順もセットで用意しておくと安心です。
まとめ
WordPressサイトをGitで管理することで、変更履歴の管理やトラブル時のロールバックがしやすくなり、チーム開発にも対応しやすくなります。
ただし、WordPressのコアファイルやメディアファイルをすべてコミットするとリポジトリが肥大化しやすいので、.gitignore
を工夫して必要なファイルだけを追跡することが大切です。
基本的には、テーマやプラグインなど自分が変更している部分を中心にGit管理し、WordPressのコア部分やアップロードされたメディアは除外する運用がよく行われます。
リモートリポジトリと連携しておけば、複数人での開発やバックアップの面でも安心です。
初心者の方でも、まずはローカル環境でGit管理を試して慣れておくと、本番サーバーへの反映もスムーズに行えます。
一度運用フローが確立すると、WordPressサイトのメンテナンスや新機能追加が格段に管理しやすくなるでしょう。