web-dev-qa-db-ja.com

bind():そのようなファイルまたはディレクトリはありません[core / socket.c line 230]

UWSGIで実行するためのUNIXソケットアプリケーションを作成しようとしています...ソケットを作成できません。次の設定を確認してください。

[uwsgi]
chdir           = /home/deploy/webapps/domain/virtualenv/app
module          = app.wsgi
home            = /home/deploy/webapps/domain/virtualenv
master          = true
processes       = 10
uwsgi-socket    = /var/run/uwsgi/app/%n/socket # if i'm tried /tmp/name.socket if work!
vacuum          = true

# Error codes:
The -s/--socket option is missing and stdin is not a socket.
bind(): No such file or directory [core/socket.c line 230]

このディレクトリにアクセス許可を与えて作成しましたが、機能しません。

mkdir -p /var/run/uwsgi/app
Sudo chown -R deploy:root /var/run/uwsgi/app
Sudo chmod 777 /var/run/uwsgi/app

これはこれと同じ解決策になります。ありがとう。

12
Colpaisa

あなたは2つのことをする必要があります:

/var/run/app-uwsgi

そして

Sudo chown -R www-data:www-data /var/run/app-uwsgi

再起動後、これは直接失われ、Ubuntuで再作成する必要があります。

3
Houman

Dockerコンテナ内でuwsgiを実行しようとすると同じエラーが発生したため、最初にディレクトリを作成する必要がありました。

Dockerfileの最後に次のコマンドを追加する必要がありました。

RUN mkdir -p /var/www/todobackend

私の場合のサーバーの設定は、docker-compose.ymlファイルの一部です。

      - uwsgi
      - "--socket /var/www/todobackend/todobackend.sock"
      - "--chmod-socket=666"
      - "--module todobackend.wsgi"
      - "--master"
      - "--die-on-term"
1
eyesfree