質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

2602閲覧

bundle exec pumactl startコマンドでpumaが起動できない。

dcg

総合スコア3

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2022/08/25 10:16

編集2022/08/25 11:50
bundle exec pumactl start

このコマンドによって、config/puma.rbに記載されている設定情報をもとにpumaが起動されるはずなのですが、

No such file or directory @ realpath_rec - /var/www/lecture05/tmp/sockets

と出てしまいます。/var以下のファイルは画像にある通りconfig/puma.rbに記載されているのですが…。
また、エラーメッセージとファイル内の記述が違うのも気になります。ファイルがあるはずなのに無いと言われる場合は権限とかの話になるのでしょうか?

bundle exec pumactl startを叩くと、No such file or directory @ realpath_rec - /var/www/lecture05/tmp/socketsと出る。
イメージ説明
config/puma.rbの全設定です。白い部分がpathの設定なのですが、間違っているようには見えません。
イメージ説明
エラーメッセージ:/var/www/lecture05/tmp/sockets
画像:/var/www/lecture05/tmp/sockets/puma.sock;
↠エラーが起こるにしても、socketsの後に/puma.sockがあるはず

また、エラーメッセージのrealpath_rec -を調べても英文の質疑応答しか出なくて、上手く意味を拾えませんでした。これは単純なファイルがあるなしのエラーなのでしょうか?

tmpファイルはありました。
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2022/08/25 11:21

まず、lecture05というディレクトリが正しい場所にあるのか確認してください。 具体的にはlecture05というディレクトリの直下でpwdコマンドを打ってその結果を確認してください。 次にlecture05の直下でls -l コマンドでtmpディレクトリがあるか確認してください。 また、ls -l tmpでtmpディレクトリの配下にsocketsディレクトリがあるか確認してください。 この質問とは直接関係ないですが、プロジェクトディレクトリ内にsockファイルやpidファイルを配置したいなら絶対パスを直書きするのではなくrailsのrootからの相対パスで記載してはどうでしょうか。 例えばここでやっているみたいに。 https://qiita.com/townsoft/items/555062cc96dd0b08a610 絶対パスだと配置ディレクトリが違うだけでエラーになります。
dcg

2022/08/25 11:43

>具体的にはlecture05というディレクトリの直下でpwdコマンドを打ってその結果を確認してください。 /var/www/lecture05と出ました。 >また、ls -l tmpでtmpディレクトリの配下にsocketsディレクトリがあるか確認してください。 socketsファイルがありませんでした…。このファイルはローカルで変更して、ec2上にプルした時点で自動的に作成されるものかと思ってたのですが、その都度自分で作るのでしょうか?
yu_1985

2022/08/25 11:47

そもそもtmpディレクトリはありましたか?
dcg

2022/08/25 11:51

ありました。画像を質問欄に挿入しました。
yu_1985

2022/08/25 12:12

設定ファイルの指定でsocketsディレクトリを省いてtmpディレクトリの直下にpuma.sockを置くようにしたらどうなりますかね。
dcg

2022/08/25 13:31 編集

winterboumさんのやり方でやったら起動できました!同じような質問を何回もして申し訳ありません。
guest

回答1

0

ベストアンサー

/var/www/lecture05/tmp/sockets がない と言ってるのですから、まず最初にやるのは
ls -l /var/www/lecture05/tmp
です。
そこに sockets が directoryとして存在するかどうか、をまず見てください。
多分ないです。エラーがそう言ってますから。

ああ、無いことは確認してましたね

socketsファイルがありませんでした…。このファイルはローカルで変更して、ec2上にプルした時点で自動的に作成されるものかと思ってたのですが、その都度自分で作るのでしょうか?

ここに勘違いが
socketsはファイルではないです。directoryです。
ファイルでしたら add して commit してれば ec2上にプルした時点で自動的に作成されますが
directoryの場合は add できませんからそうは行きません。directoryの中にあるfileをcommitしなければ。
よくやるのは .keep というサイズゼロ のfileをcommitします。

いまからでしたら、 mkdir -p /var/www/lecture05/tmp/sokets してから puma起動試してください。

投稿2022/08/25 12:41

winterboum

総合スコア23645

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dcg

2022/08/25 13:30 編集

mkdir -p /var/www/lecture05/tmp/soketsをしてから、起動したら、 No such file or directory @ rb_sysopen - tmp/pids/server.pid というエラーが起きました。同じようにtmpディレクトリに移動して、pidsがあるかどうか見たのですが、ありませんでした。これも同じようにディレクトリを作成したら無事に起動できました!ありがとうございます!
yu_1985

2022/08/26 07:11

わざわざtmp配下にsocketsとpidsというディレクトリを作成するようにしてますが、別に大した意味はないのでtmp直下に置いちゃっていいと思いますね…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問