我正在尝试为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
这将是相同的解决方案。谢谢。
你需要做两件事:
/var/run/app-uwsgi
和
sudo chown -R www-data:www-data /var/run/app-uwsgi
重启后,这会直接丢失,需要在Ubuntu中重新创建。
我尝试在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"