加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx – uWSGI权限问题

发布时间:2020-12-13 21:28:02 所属栏目:Nginx 来源:网络整理
导读:我正在尝试设置一个主厨配方,让我的网站运行,一切似乎都工作正常,除了uWSGI,它给了我以下错误: *** has_emperor mode detected (fd: 6) ***[uWSGI] getting INI configuration from app-cms.iniremoved uwsgi instance app-cms.ini 不再这样说了: open("/v

我正在尝试设置一个主厨配方,让我的网站运行,一切似乎都工作正常,除了uWSGI,它给了我以下错误:

*** has_emperor mode detected (fd: 6) ***
[uWSGI] getting INI configuration from app-cms.ini
removed uwsgi instance app-cms.ini

不再这样说了:

open("/var/www/app-cms/logs/uwsgi.log"): Permission denied [utils.c line 246]

现在正在创建该日志文件,其中包含以下内容:

*** Starting uWSGI 1.0.3-debian (64bit) on [Thu Feb  6 12:00:43 2014] ***
compiled with version: 4.6.3 on 17 July 2012 02:26:54
current working directory: /etc/uwsgi/apps-enabled
writing pidfile to /var/www/ediflo-cms/run/ediflo-cms.pid
detected binary path: /usr/bin/uwsgi-core
setgid() to 33
setuid() to 33
chdir(): Permission denied [uwsgi.c line 1723]
chdir(): Permission denied [uwsgi.c line 975]

我不确定它在尝试chdir()的位置.

我在emperor模式下启动uWSGI,并使用以下upstart配置文件使用/ etc / uwsgi / apps-enabled / fori文件:

description "uWSGI"
start on runlevel [2345]
stop on runlevel [06]

respawn

exec uwsgi --emperor /etc/uwsgi/apps-enabled --uid uwsgi --gid www-data --logto /var/log/uwsgi/uwsgi.log

这是我的uWSGI app配置:

[uwsgi]
; define variables to use in this script
; process name for easy identification in top
project = app-cms
base_dir = /var/www/app-cms
chdir = %(base_dir)

pythonpath = %(base_dir)/env/bin

uid = www-data
gid = www-data

procname = %(project)

; This value needs to be tuned
workers = 4

; Create pid file for easier process management
pidfile = %(base_dir)/run/%(project).pid

; Specify your app here
module = %(project)-wsgi:application

log-reopen = true
logto = %(base_dir)/logs/uwsgi.log

chmod-socket = 660

vacuum = True
enable-threads = True

; unix socket
socket = /tmp/app-cms-server.sock
; Enable stats
stats = /tmp/app-cms-stats.sock
最佳答案
如果Emperor以非特权用户身份运行,那么vassals就无法删除特定的uid和gid,而更重要的master-as-root也没有意义(使用它通常是一个坏主意,它只适用于需要的嵌入式系统)访问硬件以获取特定功能).

检查/var/www/app-cms/logs/uwsgi.log是否已存在且是否为root所有,很可能是先前尝试的结果,现在非特权进程无法在写入模式下访问它.

最后,不要将Emperor和vassal映射到同一个日志文件,它是隐含的,因为文件描述符2是继承的,如果vassal拥有与Emperor不同的权限,它可能会导致各种问题(不是你的情况)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读