エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


Gitで基本的なデプロイ(push、pullで本番公開)環境を作る手順解説

      2017/06/16

Gitで基本的なデプロイ環境を構築する方法

 

Gitで基本的なデプロイ環境を構築する方法を書くに至った経緯

 
Gitで基本的なデプロイ環境を構築する方法の解説記事です。
 
ローカルリポジトリから pushでリモートリポジトリにファイルをアップし、本番環境から pullでリモートリポジトリにあるファイルを本番環境に公開する環境ですので、Gitの使い方としては、非常に基本的な部分です。
 
ですが、簡単すぎるためか、こういう基本的な手続きについては解説している記事がありませんでしたので、解説記事にしました。
 
 
デプロイとは、ファイルを設置するという意味で、Web環境の場合は、本番環境などに FTPでファイルをアップロードする、という意味に近い感じです。
 
 

今回構築するデプロイ環境のイメージ

 
Gitで基本的なデプロイ(push、pullで本番公開)環境を作る手順解説 
1.プログラム開発をしている環境に Gitを導入する
2.Github(Redmine)などのリモートに pushする
3.すでに稼働している本番環境に pullする
 
という非常に基本的な手続きについて解説します。
 
 

Gitで基本的なデプロイ環境を構築する手順

 

Gitをインストールする

 
まず最初に、Gitをインストールしてください。
 
開発している環境が、Linuxで、yumコマンドが実行できる場合は、下記のコマンドでインストールが可能です。

 
「-y」は、インストールする際の質問(「Is this ok [y/N]:」のような質問)に全て「yes」と自動的に答えるオプションで、一気にインストールを実行するオプションです。
 
yumコマンドがつかえない環境であったり、Windows環境などである場合は、Gitのインストール方法はググってください。
 
Gitのインストールは、開発環境のローカルリポジトリを置く環境と、本番環境との、両方にインストールする必要があります。
 
 

Gitがインストールされていることを確認する

 
Gitがインストールされているかどうかを確認する場合は、下記のとおり「git --version」コマンドを実行してください。
下記の通り、バージョンが表示される場合は、Gitはインストールされています。
 

 
下記の様に「git: command not found」と表示される場合は、Gitはインストールされていませんので、インストールしてください。

 
 

「.gitignore」ファイルの設定確認

 
「.gitignore」ファイルの設定内容を確認します。
「.gitignore」ファイルは、Gitでは管理しないファイルを指定するファイルです。
 
 
下記は、CakePHP3をインストールすると自動的に生成される「.gitignore」ファイルですが、内容はこのようになっています。
 

 
CakePHP3の場合、「/config/app.php」は設定ファイルとなりますが、ローカル環境と本番環境とは違う内容になっていることが多々ありますので、ローカル環境の設定ファイルは、本番環境にはアップしないファイルです。
そのようなファイルを、この「.gitignore」ファイルに記載していきます。
 
ちなみに、CakePHP3の場合は、下記のファイルも追加しておく方がよさそうです。
 

 
 

ローカルリポジトリの Gitの設定を実施

 
Gitを設置したいフォルダ(ローカルリポジトリを設定するフォルダ)に移動します。
そのフォルダで下記を入力します。
 

 
1行目は、フォルダに Gitの設置するコマンドです。
フォルダ内に「.git」フォルダが生成されます。
 
2行目は、リモートリポジトリを指定します。
指定した内容が「/.git/config」のファイルの中に記載されます。
 
リポジトリの URLは、各自で設定した URLを指定してください。
今回は Redmineにリモートリポジトリを作成しましたが、Githubなどでもリモートリポジトリの URLは管理画面などに表示されると思いますので、それを指定します。
 
また、Gitを登録した際、ID、PASSを登録していない場合は、下記の様に ID、PASSを含めたURLを登録する方法がいいでしょう。

 
3行目は、ローカルリポジトリ内にあるファイルをすべてステージングエリア(インデックス)に登録します。
ファイルを「.」(ドット)で指定する場合と「-u」「-A」「-all」で指定するときの違いは、後述の「git add -all と git add -A と git add . と git add -u の違い」に書いていますので合わせて参考にしてください。
 
4行目は、コミットです。
メッセージは必要に応じて登録してください。
 
5行目は、2行目で指定したリモートリポジトリにファイル一式を pushします。
 
これで、リモートリポジトリにファイル一式がアップロードされていますので、ブラウザなどで確認できるリモートリポジトリのファイル一覧画面を確認してみてください。
 
 

デプロイする本番環境の Gitの設定を実施

 
デプロイする本番環境では、Gitコマンドの pullを実行することで、デプロイします。
そのため、本番環境にも pullを実行するための Gitの設定を行います。
 
 

Gitをインストールする

 
先にも書きましたが、本番環境でも Gitコマンドを実行しますので、まず最初に Gitをインストールします。
インストール方法については割愛します。
 
 

Gitの設定のコマンドを実行

 
Gitで管理する本番環境のドキュメントルートで、以下のコマンドを実行します。
 
$ git init
$ git remote add origin https://redmine.example.com/git_repository/example.git
$ git pull origin master
 
1行目、2行目は、ローカル環境で実行するコマンドと同じで、Gitを設置し、リモートリポジトリの URLを設定します。
2行目は、ローカルリポジトリを作成するときと同じく、ID、PASSの入力の手間を省くには、ID、PASSを含めた URLにしておくといいでしょう。
 
 
ここまでできれば、あとは、3行目の「pull」でファイルを取ってくるだけです。
 
「pull」コマンドを実行すると、リモートリポジトリからファイルが送られてきて、本番環境にファイルが反映されます。
 
この pullコマンドを実行することが「デプロイ」ということになります。
 
ただし、初めて pullコマンドを実行する際、ファイルが何もない環境にデプロイする場合は問題ありませんが、すでにファイルがある環境にデプロイすることはできません。

具体的には、下記の様に「下記のファイルは上書きできません。削除するか移動してください。」というメッセージが表示され、pullがエラーになります。

 
そのため、ちょっと手間にはなりますが、表示されるリストのファイルを削除してから改めて pullを実行してください。
 
 
また、pullコマンドを実行した場合、もともとの本番環境にあり、リモートリポジトリにはないファイルは、そのまま本番環境に維持されます。
 
例えば、先に書きましたが「.gitignore」に設定する「/config/app.php」ファイルなどが削除されるようなことはありません。
 
逆に、本番環境からファイルを削除したい場合は、Gitコマンドではなく、直接ファイルを削除する必要があります。
 
 
 

git add -all と git add -A と git add . と git add -u の違い

 
更新したファイルを、ステージングエリア(インデックス)に登録する際には、下記のように「git add」コマンドでファイルを追加します。
 

 
 
ですが、一つ一つファイルを指定するのは手間であったり、抜け漏れの原因にもなりますので、一括して登録するコマンドのオプションも用意されています。
 
それが、「git add -all」「git add -A」「git add .」「git add -u」ですが、それぞれ少しずつ処理の内容が違いますので解説をしていきます。
 

 
 
「git add .」は、新規作成されたファイル、または、変更になったファイルを追加します。ただし、削除されたファイルは処理しません。
 
「git add -u」は、ひとつ前のステージングから変更があったものを追加します。そのため、削除されたファイルも含めて処理します。ですが、新規作成されたファイルは、ひとつ前のステージングにはありませんので処理しません。
 
「git add -all」は、「git add .」と「git add -u」を足したようなもので、新規作成されたファイルも削除されたファイルも処理します。
「git add -A」は、「git add -all」の省略形で同じオプションです。
 
一括してステージングエリア(インデックス)に登録する addのオプションには細かな違いがありますので、それを理解していないと、抜け漏れが発生する可能性もありますので注意しましょう。
 
 

Gitのリポジトリを削除する方法

 
最後に、Gitのリポジトリを削除する方法を解説します。
 
検証のために、Gitのテスト用にローカルリポジトリを作成したり、ミスで想定していたところではないところにローカルリポジトリができてしまったりしたとき、そのローカルリポジトリを削除したい場合もあるでしょう。
 
そういう時は、「git init」を実行したときに作成される「.git」フォルダを削除すれば OKです。
コマンド「rm -rf .git」を実行して削除してもいいですし、FTPツールなどで削除しても問題ありません。
 
つまりは、「.git」フォルダがあることで Gitのリポジトリとして処理されるということで、それを削除すれば Gitとは関係なくなる、ということです。

 - プログラミング・Web関連技術

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

.htaccessのmod_deflateでファイル圧縮送信で高速化でSEO対策!

Page Speed Insightsの指摘事項であるファイルの圧縮送信の対応方法。処理内容の解説もあるけど、.htaccessにコピペするだけの簡単設置で効果抜群!SEOにも威力を発揮!

本当に?GMO系ロリポップ・ヘテムルを無料で運用する方法があった!

ロリポップ、ヘテムルを株主優待を利用して実質無料で運営しよう!という解説記事です。株主優待で提供されるサービスの内容を解説し、無料になる仕組みを解説します。

エックスサーバーで独自SSLは永久無料で取り放題。利用方法と理由を解説!

エックスサーバーでは独自SSLが無料でいくつでも設置できるように!しかも、国、都道府県などの数項目の入力と数クリックだけという超簡単!SSL化しない理由がない!

.htaccessのmod_expiresでブラウザキャッシュで高速化でSEO対策!

Page Speed Insightsの指摘事項のファイルのブラウザキャッシュの設定方法。解説もしてるけど、.htaccessにコピペするだけの簡単設置で効果抜群!SEOにも威力を発揮!

直リンク禁止の.htaccessを超分かりやすく解説。日本語じゃなくてPHPで説明

直リンクを禁止する.htaccessの記述内容を日本語ではなくPHPで解説!私自身もこの方法ですっかり理解できました。.htaccessって簡単!って思えますよ。

Selenium WebDriver、Pythonをインストールしブラウザ自動操作の環境構築手順のまとめ

ブラウザを自動操作しテストを実行するロボットをselenium WebDriver+Pythonの環境を構築し、動作確認までの手順のまとめ。初心者向けに詳細解説。サンプルソースも。

コピーコンテンツ・直リンクの3つの対策Google通報などのまとめ

コピーコンテンツを発見したときにやること!Googleに通報、画像の直リンクを禁止、RSSの全文配信を停止。この対策をしないとあなたのサイトの評価も下がるかも!

EストアのショップサーブのWordPressサービスにメリット無し

ショップサーブのオプションサービスのWordPressを使ってみましたがデータベースには直接触れず使えないサービスでした。

Selenium WebDriver、Pythonをインストールし Chromeの自動操作の環境構築手順のまとめ

Selenium WebDriverを使ってChromeを自動操作する環境を構築する手順のまとめ。使用するPythonのインストールから、サンプルスクリプトの動作確認までを詳細解説。

サイト更新、引越時に.htaccessでリダイレクトする方法解説

サイト更新,引越しなどでサイトのURLが変わった場合のリダイレクトを.htaccessのRewriteEngineを使って処理する方法の解説です。