bind():没有这样的文件或目录[core / socket.c第230行]

问题描述 投票:9回答:2

我正在尝试为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

这将是相同的解决方案。谢谢。

uwsgi unix-socket
2个回答
2
投票

你需要做两件事:

/var/run/app-uwsgi

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

重启后,这会直接丢失,需要在Ubuntu中重新创建。


0
投票

我尝试在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"
© www.soinside.com 2019 - 2024. All rights reserved.