【问题标题】:bind(): No such file or directory [core/socket.c line 230]bind():没有这样的文件或目录 [core/socket.c line 230]
【发布时间】:2015-01-06 02:43:23
【问题描述】:

我正在尝试创建一个 unix 套接字应用程序以在 uWSGI 中运行...但不允许我创建套接字,请检查以下设置。

[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

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

【问题讨论】:

  • 目录是/var/run/uwsgi/app/%n而不是/var/run/uwsgi/app,%n是配置文件的名字,所以要保证这个目录存在。跨度>

标签: uwsgi unix-socket


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你需要做两件事:

    mkdir /var/run/app-uwsgi
    

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

    重启后这个目录会丢失,需要在 Ubuntu 中重新创建。

    【讨论】:

    • 这是因为目录不正确,但这里的问题不是作为 www-data 运行(基于提供的配置),并且他们尝试将套接字放入的路径不同.
    • 第一个建议没有意义,看起来是打字错误。你能澄清一下吗?
    猜你喜欢
    • 2017-06-27
    • 1970-01-01
    • 2014-10-16
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 2015-02-20
    相关资源
    最近更新 更多