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

时间:2015-01-06 02:43:23

标签: uwsgi unix-socket

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

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

2 个答案:

答案 0 :(得分:2)

你需要做两件事:

/var/run/app-uwsgi

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

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

答案 1 :(得分: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"