Laravelチュートリアル

チュートリアル 3-一般ユーザーをつくってVScodeからSSH接続

前回の記事では、実運用するわけではないのでrootでやればいいと思っていましたが、次に実運用するときにはちゃんとユーザー作ってやらなければいけないので、その方法を学ぶべく、新たにユーザーをつくっておくことにしました。

前回の記事

チュートリアル 2-VS CodeからSSHでサーバー上のファイルを編集

今回はその方法です。

一般ユーザーの作成

Nakachon  root 150 95 154 147 ~  ssh root 150 95 154 147  80×24 2019 10 21 23 59 29

まずはターミナルからSSHでConoHaサーバーにログインします。

$ useradd nakachon

新しくユーザー nakachonを追加

$ passwd nakachon

nakachonのパスワードを設定。

$ usermod -G wheel nakachon

nakachonをwheelグループへ追加

$ groups nakachon

nakachonがwheelグループに所属しているか確認。

Usr  ssh root 150 95 154 147  80×24 2019 10 22 00 18 59

確認できました。

VS codeからのSSH接続も一般ユーザーに変更

前回、VS codeからRemote FSという拡張機能を使ってSSH接続して編集する設定は、rootからになっていたので、一般ユーザーであるnakachonに変更します。

2019 10 22 00 33 59

これで、ユーザーが変わりました。

接続します。

2019 10 22 10 43 54

前回、test.txtというファイルをhtmlフォルダに作成していたのですが、ユーザーを変えたことで書き込み権限がないというエラーが表示されました。

試しに、/html/laravel/appの下にファイルをつくろうとしたのですが、こちらも同じように権限が無いというエラーが発生しました。

Www  ssh root 150 95 154 147  80×24 2019 10 22 10 58 22

ターミナルからssh接続して確認したところ、htmlフォルダはユーザーもグループもrootになっていました。

Html  ssh root 150 95 154 147  80×24 2019 10 22 13 16 48

また、html/laravelのフォルダはユーザーとグループはapacheです。

ここで、laravelフォルダの権限についてFacebookのlaravel jpグループで質問したところ、対応方法を教えてもらいました。感謝です!

ディレクトリを2775(sgid)にしてuserをapache グループに入れる

Facebookのlaravel.jpグループで教えていただいた方法です。下記のURLも添えられていました。

EC2のAmazon Linux で ec2-user を apache グループに追加し、/var/www ディレクトリに apache グループの所有権を与え、グループに書き込み権限を割り当てる · GitHub

ターミナルからrootでssh接続し、この方法でやってみます。

Html  ssh root 150 95 154 147  115×24 2019 10 22 13 37 36

上記のとおり、リンク先のサイトに書かれているとおりにやってみました。

途中、find /var/wwwのところはちょっと時間がかかるのでご注意を。

再度VS codeから接続

2019 10 22 13 41 08

ユーザーをnakachonとして接続し、/var/wwwにtest.txtというファイルを作成したところ問題なくできました。

これで、VS codeを使ってSSH越しにConoHaサーバーのファイルを編集することができそうです。

まとめ

Linuxサーバーでアプリケーションを構築する場合、ユーザーの権限とグループを間違えるとかなりハマるので、学習したことはひとつひとつブログに残しながら、次に同じような開発をするときのメモにしたいものです。

あと、ConoHaのLaravelイメージをインストールすると、MariaDBも同時に用意されていたので、次回はMariaDB(MySQL)との接続をやってみます。