6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

EC-CUBEAdvent Calendar 2019

Day 18

EC-CUBE4をgit pushだけでレンタルサーバーにデプロイする方法

Last updated at Posted at 2019-12-20

概要

git pushコマンドのみでソースコードを本番サーバーにアップロードする手順について書いていきます。
EC-CUBE3系、または2系でも同様の手順で可能です。

gitpush.png

画像はイメージです。

EC-CUBEをレンタルサーバーにアップロードする手順について

Google検索でEC-CUBE4 サーバー アップロードで検索すると、記事のほとんどが、EC-CUBE公式ページからEC-CUBEのパッケージをダウンロードし、それをFileZilla等のFTPツールでソースコードをアップロード利用した記事がヒットするのですが、
EC-CUBEでECサイトを運用していく場合には、ほぼ間違いなくソースコードをgit管理したいんじゃないかなーと思うのです。
(※ EC-CUBEを実際に運用した経験がないため本当のところはわかっていません)
ローカル環境で開発し動作確認出来たソースコードを、gitだけで本番サーバーにアップロードする手順があれば良いなと思い、記事を書いてみました!

FTPクライアントツールを利用した場合のデメリット

FTPでファイルをアップする手順は直感的で簡単ですが、アップロード時に誤った操作をしてしまう可能性があります。

また、誤った操作を行うと本番ソースと同期が取れず、改修作業に時間がかかるといったことも予想されます。

人的ミスは必ず起こるので、ミスしないような仕組みを整えることが大事です。

改善策

ローカル環境で、git pushコマンドを実行するだけで、本番環境にソースをアップロードできる環境を整えます。

ソースコードのアップロードは、ローカル環境で1コマンド叩くだけなので、アップロードする際のミスを減らす事ができ作業時間も大きく削減します。

本番とローカル環境でソースコードの同期がとれ、

さらに、ローカル環境でソースコードのバージョン管理を行うため、万が一のときも安心です。

前提条件

  • git
  • ssh

が使用できるレンタルサーバーである必要があります。

2019年現在、主要なレンタルサーバー屋さんは対応しているかと思います。

今回はさくらレンタルサーバースタンダードプランの環境で行いました。
他のレンタルサーバーの方は、適宜読み替えてください。

また、コマンド内のuser_nameはご自身のユーザー名に置き換えるようにしてください。

コマンドプロンプトが$の場合はローカル、%の場合は本番サーバーでの作業となっています。

環境構築手順

sshでレンタルサーバーにログインします。
Windowsの方はputtyなどのターミナルツールを利用するようにしてください。

sshでログインし、サーバーのディレクトリを確認する

$ ssh user_name@user_name.sakura.ne.jp
$ user_name@user_name.sakura.ne.jp's password:*********

### さくらレンタルサーバの場合ホームディレクトリは/home/アカウント名/
% cd /home/user_name/
% pwd
/home/user_name

### ウェブ公開ディレクトリは/home/アカウント名/www/
% cd /home/user_name/www
% pwd
/home/user_name/www

ベアリポジトリの作成

eccube4.gitという名前のベアリポジトリを作成します。

% cd /home/user_name/
% mkdir -p git/eccube4.git
% cd git/eccube4.git/
% git init --bare

フックの設定を追加する

ベアリポジトリにpushされたとき、公開ディレクトリのリポジトリに対して、git pullを実行するための設定を記述します。

% vim /home/user_name/git/eccube4.git/hooks/post-receive

post-receiveに書き込む内容は以下です。

#!/bin/sh

cd /home/user_name/www/eccube4
git --git-dir=.git pull origin sakura-server

ブランチ名をsakura-serverとしていますが、任意の名前で構いません。

また、post-receiveに実行権限を与えておきます。

% chmod +x post-receive

ウェブ公開ルートでgitリポジトリを作成する

hookの設定によりgit pullされるリポジトリを作成します。

% cd /home/user_name/www
% git clone /home/user_name/git/eccube4.git
% ll eccube4/
total 4
drwxr-xr-x  6 user_name  users  512 Dec 20 14:55 .git

ローカル環境でgitのリモート設定を行う

EC-CUBEのリポジトリ内で、sakura-server(任意の名前/hookの設定したものと合わせる必要あり)という名前のブランチを作成し、リモートに追加します。

今回はEC-CUBE4最新バージョンを4.0.3のタグでチェックアウトしたいと思います。

$ git clone https://github.com/EC-CUBE/ec-cube.git
$ git checkout -b sakura-server refs/tags/4.0.3
$ git remote add sakura-server user_name@user_name.sakura.ne.jp:/home/user_name/git/eccube4.git

いざ本番環境にデプロイ

確認のため、README.mdを削除してコミットします。

$ rm README.md
$ git add README.md
$ git commit -m "README.mdを削除"
$ git push sakura-server sakura-server
$ user_name@user_name.sakura.ne.jp's password:
Enumerating objects: 1, done.
(省略)
remote:  README.md
To user_name.sakura.ne.jp:/home/user_name/git/eccube4.git
   8470a8d5c9..4c362102f9  sakura-server -> sakura-server

ターミナルのログにremote: README.mdと表示されます。

本番のウェブ公開ルート内のリポジトリからREADME.mdが削除されることを確認してみてください。

おわりに

git pushコマンドを実行するだけで、FTPツールを利用せずにリモート環境のソースコードのバージョン管理が可能になり、アップロード手順が単純になりました。

本番反映時の時短、ミスの軽減、gitによる履歴管理が可能になる等メリットが多いと思いますので、ぜひお試しいただければと思います。

私自身は実際に本番運用した経験が無く、実際にされている方はどういったやり方でやっているのかはすごく気になっています。もし、こんなやり方あるよとかあれば是非コメント等で教えていただけるととてもウレシイです!

参考

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?