kobasaです(´ω`*)今日もHerokuの勉強をしていました。
ターミナルでミスるとヤバいコマンドを打つのはやっぱり怖いですね。
こんな記述あったらビビりますよ(´・ω・`)
67日目の勉強内容
エラーログ
デプロイ後のアプリ上でエラーが発生すると下記の文字が表示される。
We’re sorry, but something went wrong.
これだけではエラーの原因が分からないのでエラーログを確認して原因を特定する。
heroku apps:info
アプリケーションを確認するコマンド。アプリ名やURLなどを確認できる。
heroku logs –tail –app アプリケーション名
ログを確認するコマンド。–tailオプションを付けているため最後の10行のログのみの表示になる。
エラーの記述は最後に表示されるので、そこでエラー内容を確認して原因を探る。
環境変数とシェル
Basic認証などで環境変数(外部に漏らしたくない情報を入れる箱のようなもの)を利用する実装をする場合は、シェルとうプログラムを用いて環境変数を定義する。
シェルは「ターミナルとOSを繋ぐ窓口」で、ターミナルで入力されたコマンドを読み取り、OSに指示を渡して、結果をターミナルに返して処理や実行の動作をさせるもの。
zsh(ズィーシェル)
ログインシェルと呼ばれるもので、プログラムを実行する時、ユーザーの要求に一番最初に対応する役割を持つもの。
OSがCatalina以降なら自動でzchが適用される。
vim(ヴィム)
サーバー上で使用できるテキストエディタのこと。vimコマンドを使用して指定したファイルの編集をターミナルから行うことができる。
vim ~/.zshrc
上記のコマンドで通常モードを起動。通常モードでは編集を保存したり、終了したりできる。
通常モード中に「i」キーを押すことでインサートモード(編集モード)へ移行。
「esc」キーを押して通常モードに戻る。
source ~/.zshrc
vimコマンドが終わったら上記のsourceコマンドでシェルに記述された内容を実行する。
今日のエラー
ターミナルを①コマンド入力用②サーバー起動用などで複数開いているときにsourceコマンドを実行する場合は、全てのターミナルで実行する必要がある。
①でしかコマンド入力していなかったため、ローカルサーバー再起動後のBasic認証で正しいパスワードを入れても認証されなかった。
②でもコマンド入力することで無事に認証されました。
ターミナルで余計なコマンドを入力してしまったなどで、プロンプトまで戻って来れなくなることがある。今日は強制終了した後にrails sでサーバーを立ち上げようとしたら、
already running.と既に起動済みの表示が出てしまった。
Check app/tmp/pids/server.pid.のような表記があったので
server.pid.ファイルを削除するとrails sでサーバーが起動できるようになった。
調べた対処法で合っているか分からないけど動いたのでヨシ!
コメント
already running.
自分もつい最近これに気づかず20回ぐらいrails sコマンド打ちまくってました。
わけがわからなかったので再起動しました。
Check app/tmp/pids/server.pid.
こんな表記あったんですね。
次からはちゃんと調べて対処しよ……。
返信遅くなり申し訳ありません(´・ω・`)
自分のターミナルのスクショ撮り忘れたんでQiitaで調べた内容から持ってきました。
ファイルを削除するタイプの解決方法は本当に正しいのか不安になるので(削除が原因で別のエラーが出たりとか)、
余裕があればメンターさんに聞いてからの方が良いのかなぁと思ったり。