この記事は公開から5年、最終更新日からも5年経過しています。内容が古くなっている可能性があります。
目次
(作業メモ)Gitで本番反映するように変更したときの作業メモ(従来はftp)
■背景
従来、とある個人で契約しているレンタルサーバーにデモサイトを構築していて、開発環境こそ、Gitを利用していましたが、本番環境はftpでファイルアップロードをしていました。
それを、本番環境にもGitをインストールし、そのままデプロイ(git pull)できるようにした際のメモです。
■前提条件
・本番環境:さくらレンタルサーバースタンダード、かつ、すでにデモサイト運用中
・開発環境:GitクライアントとしてSourcetree導入済み、かつ、運用済み
・Gitリポジトリは、GitLab上に作成。
・従来は、ftpソフトとして、FileZilla利用
・従来は、ローカル環境(Vagrantで構築)で開発を行い、要所でgit push、デモ環境に反映する際にftpソフト利用
・これを、さくらの環境にgitをインストールし、開発環境と同じgitリポジトリとひもづける
・その際、注意点としては、さくらの環境独自の設定がすでにあるので、それは維持すること
・成功したら、以降、ローカル環境で開発、git pushしたら、本番環境で git pullするだけ。
■作業メモ
▼注意
ユーザーアカウントや具体的なディレクトリ名、リポジトリ名、メールアドレスなどは適宜読み替えてください。
また本番環境や開発環境での操作については、今回の作業内容を元に記載しましたが、状況によって別の操作を行ったり、操作そのものが不要だったりするかと思います。
▼さくらにssh接続(以降、必要に応じて何度か行います)
ssh username_sakura@username_sakura.sakura.ne.jp パスワード入力
▼さくらの公開鍵作成
//さくらにおいて鍵作成 cd ~/.ssh ssh-keygen -t rsa -C emailaddress@xxx.yyy //以下3行すべてEnter Enter file in which to save the key (/home/username_sakura/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: //ファイルid_rsa と id_rsa.pubができていることを確認 //id_rsa.pubの内容をコピーしておく less id_rsa.pub
▼GitLabのリポジトリにさくらの公開鍵登録
https://gitlab.com/profile/keys
→Add an SSH key
先ほどコピーしておいた id_rsa.pub の内容のうち末尾のメールアドレス以外の部分をKey欄に追加。
▼さくらにおいてGitLab疎通確認
cd ~/.ssh vi config //下記のように入力し保存 //----- Host gitlab HostName gitlab.com IdentityFile ~/.ssh/id_rsa User git //----- //疎通確認 ssh -T git@gitlab.com
→ Welcome to GitLab, @username_gitlab!
▼さくらでgit設定
cd /home/username_sakura/www/foldername git init git config --global user.name "username_git" git config --global user.email "emailaddress@xxx.yyy" //リモートリポジトリわりつけ git remote add origin git@gitlab.com:username_gitlab/repositoryname.git git fetch //もともと空のフォルダであれば、リポジトリからcloneしてくれば良いのですが、 //すでにフォルダ、ファイルを配置しているため、そのバックアップ的な目的でブランチを作成しコミットしておきます。 //あとで今までの開発環境との差分を確認するのにも利用できます。 git checkout --orphan branchname //適宜git除外ファイルの追加 vi .gitignore git add . git commit git push origin branchname
▼ローカルで開発
さくらで作成したブランチ「branchname」をローカルにも反映しておく。
//SourceTreeでリモートブランチ「origin/branchname」を「branchname」にチェックアウト
従来、本番反映のために作成していたブランチ「masterbranchname」とさくらで作成した「branchname」の差分を確認し、もし、差分があるようだったら「masterbranchname」に反映しておく。
※実際には「.htaccess」に差分があったのでそれを「masterbranchname」に反映しました。
//SourceTreeで従来よりあった「masterbranchname」に切り替え(チェックアウト) //差分のあったファイルのみチェックアウトしてくる git checkout branchname -- .htaccess git commit //実際にはSourceTreeで操作 git push //実際にはSourceTreeで操作
その他、開発したソースをSourcetreeを利用して適時コミット、プッシュ。
▼本番環境デプロイ
cd /home/username_sakura/www/foldername git checkout masterbranchname git pull
▼以降、ローカルで開発し本番環境に反映
SourceTreeでは、masterbranchnameにコミット、プッシュ
本番環境では、masterbranchnameにブランチが指定されていることを確認した上でプル
■おつかれさまでした!!
■構築を終えて
以前は、Gitの操作にも全く慣れてなく結構、やってはいけないことをやってて肝を冷やしていましたが、
最近は、少しづつ慣れてきて、むしろ、Gitで管理したほうが楽になってきた頃、
たまたま、あるサイトは、git pullするだけで本番反映できたので、一瞬ドキッとするだけですんだのですが、
別のサイトでは大量のファイルをftpで更新しなければならず、わりと長時間、手がワナワナと震えてしまいまして(笑)
Gitの恩恵を強く感じたので、復習も兼ねて個人のレンタルサーバーもやってみようという心理的背景がありました。
ということで、もうひとつ個人で借りているロリポップの方も機会を見つけてgit化したいなと思う今日この頃です。
また、これで、新規サイトを立ち上げるときは、最初からGit管理にしようと思います。