まず、この記事では何も解決しません。
エラーで苦しんだり、とにかく知識を得たい!という人はこの先は読まないでください。
これまでの道のり
AWSを使っての初デプロイってこんな険しい道なのか。。
というか、それ以前にAWSだけでなく、Linuxの知識が無さすぎてホントに細かい部分で躓いてしまうので、結果ものすごい遠回りをしてしまっている。
先日、AWSで初デプロイを試みるも、何故か
We're sorry, but something went wrong.
の表示のままで(エラーログなし)、メンターからのアドバイスでFileZillaを使って、デプロイしているアプリをただ rails new しただけのアプリと置き換えて、AWSの方に原因があるのか、アプリの方に原因があるのか確認することに。
ようやくFilezillaでAWS側と繋いで、置き換えてみると 502 のサーバーエラー。
やっぱりAWS側の問題?と思いながら、とりあえずエラーログを見てみよ。
、、、ってunicornないじゃん。
いや、unicornはgemに記述するわけだから、ただrails newしただけのアプリには無いに決まってるか。
ということで、vi でgemの内容を変更。
そして、bundle install実行。
There was an error while trying to write to `/var/www/rails/xxx(アプリ名)/Gemfile.lock`.
It is likely that you need to grant write permissions for that path.
えー、書き込みの権限ないよ。
って言われました。
単に書き込み権限付ければいいんだろうなぁ。と思ったのですが、今まで参考記事とかでやみくもにchownとかchmodとか使っていたので、改めて「それぞれどういう意味だっけ」と思ってググってみました。
下記サイトが非常に分かりやすくまとめてくれていて、大変参考になりました。
Linuxコマンド
chmod、chownなどの違い
- chmod (change mode) ファイルやディレクトリのアクセス権限を変更
- chown (change owner) ファイルやディレクトリの所有者を変更
- chgrp (change group) ファイルやディレクトリのグループを変更
他にも755など数値での権限の表し方。
-rwx--x--xなどのアルファベット10文字での、ファイルに対するアクセス権限の表し方が分かりやすくまとめられていました。
他にもLinuxで調べて、へぇって思ったこと。
パーミション権限の確認
$ ls -al ファイル名・ディレクトリ名
今現在ログインしているユーザーを調べる
$ who
もしくは
$ user
ユーザーやパスワードに関する情報は /etc/passwd に
ユーザー情報に関する整合性が失われてしまう可能性があるので、手動では変更しないように、とのこと。
lessコマンド
たまに参考記事とかで出ていたコマンド。catとどう違うんだ?って思ってましたが、lessだとテキストファイルを1画面ずつ表示できる。とのことです。
書式
less ファイル名
もしくは
コマンド | less
と書いて、別のコマンド結果を1画面ずつに表示することもできる。
- Enterで次の行
- スペースキーで次の画面に進める
- 上下矢印キーでスクロールも可能
- qで終了
と、色々Linuxコマンド調べたところでGemfile書き込めるよう権限をつけてみようとするも、うまくいかない。。なぜ。。
というか、Linuxに関して分かってなさすぎな件
ここまできて気づきましたが、自分は全然Linuxの知識が全然ない。。
デプロイする際にQiitaなどで紹介されている記事に書かれている通りに、その都度実行してきました。
が、一度腰を据えて、ちゃんとLinux勉強しないとダメだな。
一刻も早く「デプロイしたい」という気持ちですが、ちゃんと体系的に勉強できる時間というのはすごく貴重だと思うので、むしろ今の内にしっかり基礎を勉強しようと思います。
ということで、以前購入していた
・「Linux標準教科書 ver3.0,2」と
・Udemy教材「これだけでOK!AWS認定〜」
まだまだ初デプロイへの道は続きます。
特に中身ない記事をご覧いただきありがとうございました。
頑張ってAWSでのデプロイまで漕ぎ着けたいと思います。