uwsgi実行時bind(): No such file or directory [core/socket.c line 230]の解決方法

bind(): No such file or directory [core/socket.c line 230]エラーの原因

uwsgi.logを開くと、bind(): No such file or directory [core/socket.c line 230]エラーの原因はディレクトリが存在しない・ファイルパスのミス・所有者の設定ミス・パーミッションのミスの原因が考えられます。

例えば下記コマンドを実行したときに起きたエラーの解決方法を説明します。

core/socket.cの原因詳細と解決方法

uwsgiのモジュールの指定が間違っている(module)

モジュールディレクトリとファイル名を指し示しています。
--module myweb.wsgiと指定したときはカレントディレクトリにmyweb/wsgi.pyファイルを指しています。Webで調べたものを当てはめても実行できない原因はこれに該当します。

ディレクトリが存在しない・所有者・パーミッションの設定が正しくない状態でuwsgiを実行している

--socket /tmp/myweb.socktmpディレクトリにmyweb.sockを作成することを指しています。tmpディレクトリがない。所有者やパーミッションが合っていない。などミスをするとmyweb.sockを作成することはできません。ファイルパス・所有者・パーミッションを見直しましょう。

ディレクトリが存在しなければmkdir tmp
所有者権限が間違って入ればchown -R hoge:fuga /tmp
パーミッションが間違って入ればchmod -R 777 /tmp
など行えばエラーが解決するはずです。