レンタルサーバに自動デプロイ

2021/12/11

多くの人はLaravelのプロジェクトをGitで管理していると思います。

僕もSourceTree(Gitを視覚的に操作ができるGUI)を使ってLaravelのソースコードを管理しています。

Gitを使ってソースコードを管理するのは大変便利なのですが、本番サーバへのデプロイ(反映)が面倒に感じます。

現在、僕がやっているデプロイのやり方は

1) ローカルで確認して問題なければSourceTreeでBitBucketサーバにプッシュ

2) FTPソフトを使って本番サーバにUP

今回はBitBucketサーバにプッシュしたら自動で本番サーバにデプロイする仕組みを構築します。

 

目標

BitBucketサーバにプッシュしたら自動的に個人サーバ(さくらレンタルサーバ)にデプロイされる。

 

前提条件

  • BitBucketのアカウントは既に取得済み
  • BitBucketのリポジトリがすでに作成されている
  • 一回以上プッシュ済み

 

手順

【1】bitbucket-sync をダウンロード

【2】設定ファイル(config.php)の作成

【3】さくらサーバにアップロード

【4】動作確認

【5】bitbucketの管理画面でWebhooksの設定

 

【1】bitbucket-sync をダウンロード

Bitbucketを使ってFTPに自動でデプロイする方法としてはbitbucket-syncというのが有名です。

まずは下記から bitbucket-sync をダウンロードします。

https://github.com/alixandru/bitbucket-sync/

ダウンロードしたフォルダ名が長いので『bitbucket-sync』にリネームします。

※あとでフォルダごと本番サーバにUPして、動作確認でURLをたたくので短い名前にしたほうが便利なのです。

 

【2】config.phpの設定

config-sample.phpをconfig.phpにリネームして編集します。

// Bitbucketのアカウントを設定
'apiUser' => 'Bitubucketアカウント名',
'apiPassword' => 'Bitubucketログインパスワード' ,

// 認証の設定
'requireAuthentication' => true, //falseをtrueに変更
'deployAuthKey' => '',
'gatewayAuthKey' => 'hogehoge', //自由に入力(あとで使います)

// リモートリポジトリの設定
$DEPLOY = array(
  'リポジトリ名' => '{アカウント名}/home/{Laravelプロジェクト名}',
);
【解説】
Bitbucketのアカウント名はメールアドレスではありません。
登録時やURLに表示されているアカウント名です。

 

【3】さくらサーバにアップロード

設定が終わったらデプロイしたいサーバにフォルダごとアップロードします。

アップロード場所はドキュメントルートにアップします。

さくらレンタルサーバの場合は /home/{さくらのアカウント}/www になります。

 

【4】動作確認

bitbucket-syncをアップロードしたら下記のURLをたたきます。

http://{アカウント}.sakura.ne.jp/bitbucket-sync/deploy.php?setup={リポジトリ名}

成功すると以下のようなメッセージが流れます。

BitBucket Sync – Full Deploy
============================
Finished deploying リポジトリ名

 

【5】bitbucketの管理画面でWebhooksの設定

bitbucketにログインしてWebhooksにbitbucket-syncのURLを登録します。

これを行うことでプッシュ時に指定したURLにPOSTリクエストされるようになります。

【解説】
Webhookとは?
リポジトリにプッシュしたときに指定したURLにPOSTリクエストする仕組みのことです。

以下のように順にクリックをしていきます。

1) 設定

2) webhooks

3) add webhook

webhookの設定では

  • titleは何でもOK
  • urlは動作確認で入力したURL( http://{アカウント}.sakura.ne.jp/bitbucket-sync/deploy.php?setup={リポジトリ名} ) を入力

これでsaveします。

次回からSourcetreeでbitbucketへプッシュすると、自動でさくらサーバに反映されるようになります。

【解説】
多くの解説サイトではwebhooksのURLの項目には
http://{アカウント}sakura.ne.jp/bitbucket-sync/gateway.php?key=(config.phpで設定したパスワード)
を入力するように解説されています。しかし僕の場合これでは上手くいきませんでした。正当なやり方ではないと思いますのであしからず。

以上です。

Git おススメ教材(by Udemy)
動画でプログラミング学習!ドットインストール、Schoo、Udemyのどれがいい?
 
Udemyを使ったLaravel学習方法

Git: もう怖くないGit!チーム開発で必要なGitを完全マスター

Gitの基本コマンド、ブランチやマージ、コンフリクトの解消方法、リベース、GitHubを利用した開発フローなど、チーム開発に必要なGitの全てが含まれています。仕組みを図解で理解した上でハンズオンで実践するので、もうGitは怖くありません。
4.2(6409)

 

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-環境構築