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
ブラウザでアクセスし、ローカル環境と差異がないかを改めて確認します。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
mod_pagespeedカスタマイズで高速化を詳細解説・Google謹製
mod_pagespeedをデフォルトのまま使っていませんか?mod_pagespeedはデフォルトのままでも速い!でも仕組みを理解し設定し直せばより速くなる!
-
-
エックスサーバーで独自SSLは永久無料で取り放題。利用方法と理由を解説!
エックスサーバーでは独自SSLが無料でいくつでも設置できるように!しかも、国、都道府県などの数項目の入力と数クリックだけという超簡単!SSL化しない理由がない!
-
-
Gitで「fatal: Authentication failed for ‘https://example.com/git_repositories/example.git/’」のエラーが出た場合の対処方法の一つ
Gitのリモートリポジトリにアクセスする際、Authentication failedのエラーが。しかし、ID、PASSが間違っているのではなく、リモートリポジトリのURLが間違っている場合もあるので再度確認を。
-
-
PythonでMySQLへの接続ライブラリMySQL-pythonの簡単インストール方法
PythonはMySQLに接続するライブラリは別途インストールが必要。なのでMySQL-pythonライブラリのインストール方法とサンプルスクリプトで動作検証までを解説。
-
-
.htaccessのmod_deflateでファイル圧縮送信で高速化でSEO対策!
Page Speed Insightsの指摘事項であるファイルの圧縮送信の対応方法。処理内容の解説もあるけど、.htaccessにコピペするだけの簡単設置で効果抜群!SEOにも威力を発揮!
-
-
chromedriver.exe – ディスクがありませんと出てSeleniumの設定が上手くいかない
Selenium WebDriverを使ってChromeを自動操作する仕組みを作る際、chromedriver.exeを利用しますが、ディスクがありません、というエラーが発生する場合があります。その対処方法を解説します。
-
-
コピーコンテンツ対策.htaccessで直リンク禁止しリダイレクトで対応
不正なコピーコンテンツからの直リンクを拒否する.htaccessの設定方法。拒否するサイトを指定、許可するサイトを指定する方法、単純な拒否と画像の差し替えを解説。
-
-
XSERVERにCakePHP3をインストール。コマンドラインのPHPのバージョンを変更する方法で解決
XSERVERにCakePHP3をインストールするときに問題となるのはサーバーパネルとSSH接続の時とで認識されるPHPのバージョンの違いがあるため。その解消方法を解説する。
-
-
EストアのショップサーブのWordPressサービスにメリット無し
ショップサーブのオプションサービスのWordPressを使ってみましたがデータベースには直接触れず使えないサービスでした。
-
-
Apacheの起動しているかの確認方法と起動、再起動、終了のコマンド
Apacheが起動しているかを確認する方法の解説に加え、Apacheの起動、停止、再起動のコマンドを解説。再起動のコマンドには restart、condrestart、reload、gracefulがあり、違いを解説。