2021/5/25時点で、KagoyaのマネージドサーバーでLaravel開発することは断念しました。
理由は
- Composerが使えないこと
- PHPがCliモードで使えないこと
回答いただきました、Kagoyaのサポートの方々、ありがとうございました。
サーバーに詳しくなかった自分のレベルが、今回のことで少しだけあがりました。
サーバーについては他のサーバーを検討することにします。
なお、使えない理由は下記記事にありますので、興味ある方はご参照ください。
過去、Laravelでプロジェクトをやったとき、サーバーにSSHで接続して直接編集をしていました。
もちろん、本番も開発も同じところでやるのはよくないこととはわかりつつも、どうやったら正しい開発環境をつくることができるのかわからなくて&調べるのが大変で、やむを得ずその方法をとっておりました。
でも、今回はなんとかしたいと思い、今日一日を費やして、現状を改善し、一歩、理想に近づけることができましたので、その備忘録を書きます。
やりたかったこと
やりたかったのは、自分のMacBookProで開発し、それをGithubに送り、送ると自動的にKagoyaサーバーが更新されるというスタイルでした。
できたこと
このように、kagoyaのサーバーの中にペアレポジトリを作成し、MacBookにもクローンを作成。MacBookで開発した内容が、サーバーに反映、サーバーにSSH接続してGit pullすることで公開部分のソースが更新されるというもの。
さくらのレンタルサーバーにgitのリモートリポジトリを作成する | Points & Lines
↑ こちらの記事を参考にさせていただきました。
どうやったか
まずは、サーバー側で、/home/nakachon/repository/versions.gitにて
$ git init --bare --shared
で、もととなるレポジトリを作成。
つぎに、公開ディレクトリ(public_html)下にtestのディレクトリを作成。
/home/nakachon/public_html/test/
$ git clone /home/nakachon/repository/versions.git/
ここにgit clone
/testの下にversionsというフォルダがつくられました。
次にローカルで自分のMacBookPro.
nakachon/code/test というフォルダを作成。
ここで、
git clone kagoya:/home/nakachon/repository/versions.git/
とやって、git cloneします。
実は、これが一番大変だった。
というのも、
1. .ssh/config にてHostの設定
これは、Host kagoyaを作り、鍵やPortの設定をすればOK.
2. Git cloneのあとの部分の表記がなかなかうまくいかず、
Cloning into 'repository'... fatal: 'nakachon/repository/' does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
何度もこのメッセージが出ました。
実験
まずはMacBookProにて
$ touch test.txt $ git add test.txt $ git commit -m "test" $ git push origin master
これでPush完了。
次にサーバーにSSHで接続。
public_html/test/versions に移動
-bash-4.2$ git pull remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From /home/nakachon/repository/versions * [new branch] master -> origin/master -bash-4.2$ ls -al 合計 0
で、フォルダを確認したところ、無事にtest.txtが反映されていました。
次の課題
git pushしたら自動的にpublic_htmlでgit pullしてくれるような方法があるらしいです。
メモ: Gitリモートリポジトリにpushして自動更新してもらう方法 – Qiita
この記事ですね。
これができれば、やりたかったことが達成できそう。
まとめ
gitって便利なのはわかってるけど、近くに教えてくれる人いないとなかなかハードル高いですよね。
これを元に、当たり前のようにgit使えるようがんばります。