puma+nignx エラー「sockets/puma.sock failed (13: Permission denied)」の対処法

puma+nignx エラー「sockets/puma.sock failed (13: Permission denied)」の対処法

puma+nignxでrails実行時にエラー「sockets/puma.sock failed (13: Permission denied)」が発生した場合の対処法を記述してます。

環境

  • OS CentOS Linux release 7.9.2009 (Core)
  • Ruby 2.7.2
  • Rails 6.1.1
  • rbenv 1.1.2-40-g62d7798

エラー全文

アクセス時に発生。ログは、nginxで吐き出す場所を設定してます。

error_log  /home/username/railsTest/log/nginx.error.log;

エラー全文

connect() to unix:/home/username/railsTest/tmp/sockets/puma.sock failed (13: Permission denied)
while connecting to upstream, client: xxx, server: xxx, request: "GET / HTTP/1.1", 
upstream: "http://unix:/home/username/railsTest/tmp/sockets/puma.sock:/", host: "xxx"

対処法

nginx側の実行ユーザーが「nginx」になっているため。rootに変更するか、railsの所有者に変更してあげる。

nginx.confを以下のように変更する

user  nginx;

↓ 変更

user  root;

再起動

sudo systemctl restart nginx