Git

ローカルからGITでPUSHするとサーバー側が自動的にPULLさせる方法

2021/5/25時点で、KagoyaのマネージドサーバーでLaravel開発することは断念しました。

理由は

  • Composerが使えないこと
  • PHPがCliモードで使えないこと

回答いただきました、Kagoyaのサポートの方々、ありがとうございました。
サーバーに詳しくなかった自分のレベルが、今回のことで少しだけあがりました。

サーバーについては他のサーバーを検討することにします。

なお、使えない理由は下記記事にありますので、興味ある方はご参照ください。

Kagoyaのマネージドサーバーはcomposerが使えないのでgitigonoreを編集してpushしてみた

Kagoyaマネージドサーバーでlaravelのphp artisan tinkerが動かない問題

前回、サーバー側にgitのレポジトリをつくって、ローカル環境からPUSHすると反映する方法について確認しました。

リモートサーバーにgitのレポジトリつくってローカル環境からpushして反映させる方法|ゼロから始めるLaravel勉強会

今回は、ローカルからPUSHすると自動的にサーバー側も更新するようにしたいとおもいます。

やり方はこちらの記事を参考。

メモ: Gitリモートリポジトリにpushして自動更新してもらう方法 – Qiita

Gitのフック(hook)を使って自動的にデプロイする – Gitテックラボ – [SMART]

サーバー側のoriginal

ssh

サーバー側のレポジトリにはこのようにフォルダが生成されているので、hooksフォルダに移動。

$ touch post-receive

post-receiveファイルがなかったので作成します。

$ vim post-receve

post-receiveを編集します。

#!/bin/sh
cd /home/nakachon/public_html/test
git --git-dir=.git pull

このままだと実行権限がないので、

$ chmod +x post-receive

とします。

ちゃんと動くか確認するには

$ ./post-receive

とします。

これで、ローカルからサーバーにpushしたときに、public_html/testにも自動的にデプロイされるようになりました。

まとめ

長年やりたかったことができました!