前回の記事では、実運用するわけではないのでrootでやればいいと思っていましたが、次に実運用するときにはちゃんとユーザー作ってやらなければいけないので、その方法を学ぶべく、新たにユーザーをつくっておくことにしました。
前回の記事
チュートリアル 2-VS CodeからSSHでサーバー上のファイルを編集
今回はその方法です。
一般ユーザーの作成
まずはターミナルからSSHでConoHaサーバーにログインします。
$ useradd nakachon
新しくユーザー nakachonを追加
$ passwd nakachon
nakachonのパスワードを設定。
$ usermod -G wheel nakachon
nakachonをwheelグループへ追加
$ groups nakachon
nakachonがwheelグループに所属しているか確認。
確認できました。
VS codeからのSSH接続も一般ユーザーに変更
前回、VS codeからRemote FSという拡張機能を使ってSSH接続して編集する設定は、rootからになっていたので、一般ユーザーであるnakachonに変更します。
これで、ユーザーが変わりました。
接続します。
前回、test.txtというファイルをhtmlフォルダに作成していたのですが、ユーザーを変えたことで書き込み権限がないというエラーが表示されました。
試しに、/html/laravel/appの下にファイルをつくろうとしたのですが、こちらも同じように権限が無いというエラーが発生しました。
ターミナルからssh接続して確認したところ、htmlフォルダはユーザーもグループもrootになっていました。
また、html/laravelのフォルダはユーザーとグループはapacheです。
ここで、laravelフォルダの権限についてFacebookのlaravel jpグループで質問したところ、対応方法を教えてもらいました。感謝です!
ディレクトリを2775(sgid)にしてuserをapache グループに入れる
Facebookのlaravel.jpグループで教えていただいた方法です。下記のURLも添えられていました。
ターミナルからrootでssh接続し、この方法でやってみます。
上記のとおり、リンク先のサイトに書かれているとおりにやってみました。
途中、find /var/wwwのところはちょっと時間がかかるのでご注意を。
再度VS codeから接続
ユーザーをnakachonとして接続し、/var/wwwにtest.txtというファイルを作成したところ問題なくできました。
これで、VS codeを使ってSSH越しにConoHaサーバーのファイルを編集することができそうです。
まとめ
Linuxサーバーでアプリケーションを構築する場合、ユーザーの権限とグループを間違えるとかなりハマるので、学習したことはひとつひとつブログに残しながら、次に同じような開発をするときのメモにしたいものです。
あと、ConoHaのLaravelイメージをインストールすると、MariaDBも同時に用意されていたので、次回はMariaDB(MySQL)との接続をやってみます。