エス技研

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


Git管理のソースを元に新しく構築する環境に反映させる手順

      2025/03/23

Git管理のソースを使って新しい環境を構築する

 
Gitで管理しているソースを使用して、新しい環境を構築する方法を解説します。
 
例えば、下記のような想定です。
・進行中のプロジェクトに参加し、ローカルに開発環境を作る
・ローカルで開発しているものを、AWS上に検証環境を作る
・リリースが近づいてきたので、AWS上に本番環境を作る
 
また、最近は、ほとんどの場合はフレームワークを使用して開発をしていると思いますので、フレームワークの設定も含めた環境構築の手順を解説します。
(私は CakePHPをメインで使用していますので、CakePHPを想定して書きますが、他のフレームワークでも同じようにできるはずです。)
 
 
今回は、
「ローカルでの開発が終盤に近付いてきたので、本番環境を構築する」
という想定で説明していきます。
 
 

Git管理のソースを新しく構築する環境に反映させる手順

 

CakePHPの基本的な環境を構築する

 
まず最初に、本番環境にローカル環境と同じフレームワークをインストールします。
 
CakePHPの場合は、LAMP環境を構築し、まっさらな CakePHPをインストールします。
 
CakePHPのバージョンを調べる方法、および、バージョンを指定して CakePHPをインストールする方法は下記の記事を参考にしてください。
 
「CakePHP3、CakePHP4、CakePHP5のバージョンを指定してインストールする詳細な手順を解説」
「CakePHP2、CakePHP3、CakePHP4、CakePHP5のバージョンを調べる 2つの方法」
 
※LAMP環境の構築については Googleで検索してください。
 
 
この段階で、DBの設定、テーブルの構築などを行い、インストールした CakePHPが動作することを確認しておきます。
 
また、Gitで管理していないライブラリ等のインストールもこのタイミングで実行しておきます。
例えば、「Authentication(認証処理)」など。
https://book.cakephp.org/authentication/3/ja/index.html
 
「Authentication(認証処理)」については、下記にも記事を書いていますので参考にしてください。
 
「CakePHP4、CakePHP5系の認証処理でログインの有無の確認、ユーザ情報の取得の方法」
「CakePHP4、5のユーザ認証でID、PASS以外の削除フラグなども条件加える方法」
 
 

Gitのインストールと初期設定

 

Gitがインストールされているか否かの確認

 
Gitがインストールされているか否かを確認します。
 

$ git --version
git version 2.47.1

 
上記のようにバージョンが表示されれば Gitはインストールされています。
「-bash: git: command not found」の場合はインストールされていませんので、Gitをインストールします。
 
 

Gitのインストール

 
Gitがインストールされていない場合は、インストールを行います。
 
AWSの AL2023の場合は dnfを利用してインストールします。
(「update」でインストールするパッケージを最新化し、「install」でインストールします。)
 

$ sudo dnf update
$ sudo dnf install git -y

 
yumを利用してインストールする場合もコマンド形式は全く同じです。
 

$ sudo yum update
$ sudo yum install git -y

 
インストールを実行し、「Complete!」と表示されると完了です。
改めて、「git --version」を実行してバージョンが表示されることを確認します。
 
 

Gitの設定

 
続いて、CakePHPを構築している環境で Gitを使用できるように設定します。
 

$ cd /var/www/html/
$ git init
$ git remote add origin https://ID:PASS@example.com/sample/sample.git

 
「cd」コマンドで開発をしているアプリのドキュメントルートに移動します。
「git init」で Gitを設置します。
続いて、「git remote add」で Gitで管理しているリポジトリの情報を追加します。
 
詳しい説明が必要な場合は、下記のサイトなどが参考になるかと思います。
https://www.sejuku.net/blog/71492
 
 

ソース一式を pullする

 
続いて、ソースを「pull」します。
 

$ git pull origin master

 
ここでは、「master」ブランチを「pull」していますが、必要なブランチを pullしてください。
 
そうすると、下記のようなエラーが発生します。
 

$ git pull origin master
remote: Enumerating objects: 1234, done.
remote: Counting objects: 100% (1234/1234), done.
remote: Compressing objects: 100% (880/880), done.
remote: Total 1234 (delta 1111), reused 880 (delta 660), pack-reused 0
Receiving objects: 100% (1234/1234), 3.33 MiB | 4.44 MiB/s, done.
Resolving deltas: 100% (1111/1111), done.
From https://example.com/sample/sample.git
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
error: The following untracked working tree files would be overwritten by merge:
        .editorconfig
        .gitattributes
        .github/ISSUE_TEMPLATE.md
           :
          中略
           :
        webroot/img/cake.power.gif
        webroot/index.php
        webroot/js/.gitkeep
Please move or remove them before you merge.
Aborting

 
これは「pullしようとしているファイルがすでにありますよ」というエラーです。
 
CakePHPを普通にインストールした上に pullしていますので、既にファイルがある場合もあるでしょう。
 
というワケで、重複しているファイルを削除していきます。
 
 

重複しているファイルを削除する

 
ファイルのリストを一つずつ見ながら ftpなどで削除してもいいのですが、重複しているファイルのリストを、テキストファイルなどにコピペして、行頭に「rm」コマンドを追加します。
そして、これを改めてコンソールにコピペしてまとめて削除します。
この方法を使えば、抜け漏れなく簡単に指定のファイルを削除できます。
 

rm        .editorconfig
rm        .gitattributes
rm        .github/ISSUE_TEMPLATE.md
           :
          中略
           :
rm        webroot/img/cake.power.gif
rm        webroot/index.php
rm        webroot/js/.gitkeep

 
https://qiita.com/h-pod/questions/c9aafa4cb872ef68dfc5
ただ、上記の記事によると「コピペ」する際の文字数には「4096文字」という上限があるようですので、無理せず、20~30行ずつくらい実行するとよさそうです。
 
 
全部削除が終わったら、改めて、pullを実行すれば、Gitで管理している環境が出来上がります。
 

$ git pull origin master

 
pullした「master」ブランチができていることを確認します。
 

$ git branch
* master

 
最新の情報が pullで来ていることを logで確認します。
 

$ git log --oneline
0b7f0b7 (HEAD -> master, origin/master) 3rd Commit
d34cd34 2nd Commit
7570757 First Commit

 
 
ブラウザでアクセスし、ローカル環境と差異がないかを改めて確認します。

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

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

Message

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

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

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

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

  関連記事

借りてはいけないレンタルサーバ実例4社・アルファメール・WEBアリーナ

餅は餅屋。サーバはサーバ屋が提供するサービスを利用するべきという記事で、具体例 4サービスを例にこんなサーバはNGと紹介しています。

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

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

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

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

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

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

Pythonをコマンドラインで実行。全角文字(日本語)を引数にする場合の対処方法

Pythonをコマンドラインで実行する際、引数を付与して実行する方法の解説。その時問題となる日本語(全角文字)を利用する方法を解説。Windows環境での解説。

PythonでMySQLへの接続ライブラリMySQL-pythonの簡単インストール方法

PythonはMySQLに接続するライブラリは別途インストールが必要。なのでMySQL-pythonライブラリのインストール方法とサンプルスクリプトで動作検証までを解説。

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

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

Webサイト公開時に重複コンテンツを排除する.htaccessのリダイレクトの設定のまとめ

サイトを公開する際にはURLの正規化は必須です。正規化とは何かを解説し、.htaccessに設定すべきリダイレクトの設定を具体的に説明します。

X Serverへの引越しの注意点まとめ。ロリポップとの違いと対処方法 6事例

ロリポップからX Serverに引越し。ロリポップとX Serverの違いに注目することでX Serverの設定方法を明確にします。またX Serverならではの設定ポイントなども解説。

PythonでURLの有無、存在をチェックするスクリプト

PythonでURLが存在するか否かのチェックスクリプト。ライブラリ「urllib2」を使い、指定のURLにアクセスしそのレスポンスコードを判別するという仕組み。