无法以 root 身份运行 uwsgi,“bind(): 权限被拒绝”

2024-04-24

我尝试使用此文档配置 uWsgi、Django、Nginx:http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html

完成配置uwsgi.ini文件,创建一个软链接/etc/uwsgi/vassals.

最后一步失败:让uWSGI在系统启动时启动.

当运行此命令时:

sudo /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data

我收到这个错误:

clock source: unix
detected number of CPU cores: 1
current working directory: /etc/uwsgi/vassals
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
your processes number limit is 3813
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
bind(): Permission denied [core/socket.c line 227]
Tue May 27 05:29:26 2014 - [emperor] curse the uwsgi instance uwsgi.ini (pid: 1391)
Tue May 27 05:29:29 2014 - [emperor] removed uwsgi instance uwsgi.ini

如果我运行这个命令而不sudo, 一切都好。

我已将用户“kk”添加到“www-data”组中,这是uwsgi.ini

[uwsgi]
chdir           = /home/kk/XXXXXXX
module          = wsgi
home            = /home/kk/XXXXXXX

master          = true
processes       = 10
socket          = /home/kk/XXXXXXX/mysite.sock
chmod-socket    = 666
vacuum          = true

我想也许我在文件权限上犯了错误。有人有好主意吗?谢谢。


Update:

官方文档是正确的,我按照步骤将项目部署在另一个新的VPS上,没有出现错误。


我不知道为什么权限不起作用,但我遇到了同样的问题。

解决此问题的一种快速方法是将套接字移至 /tmp! (无论如何,这是一个相当合理的保存套接字的地方......)

所以只需更新 uwsgi 配置:

socket          = /tmp/mysite.sock

以及 nginx-config:

upstream django {
    server unix:///tmp/mysite.sock;
}

它将开始工作!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法以 root 身份运行 uwsgi,“bind(): 权限被拒绝” 的相关文章

随机推荐