uwsgi + nginx如何更改组?

问题描述 投票:4回答:2

我正在尝试uwsgi + nginx + django教程,并被卡在那里(直接链接到我被卡住的部分)https://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html#if-that-doesn-t-work

nginx error.log说:

2015/03/09 13:44:51 [crit] 11642#0: *16 connect() to unix:///home/gaucan/temp/my_app/mysite.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///home/gaucan/temp/my_app/mysite.sock:", host: "localhost:8000"

并且教程说要修复它,请执行以下操作: You may also have to add your user to nginx’s group (which is probably www-data), or vice-versa, so that nginx can read and write to your socket properly. 但是我是linux noob,我不知道该怎么做,或者如何确定该组是否为www-data。。。在将所有者更改为用户的某些文件夹之前,已经有些混乱了:“ gaucan”

我也确实在本步骤中跳过了这一步: You will need the uwsgi_params file, which is available in the nginx directory of the uWSGI distribution, or from https://github.com/nginx/nginx/blob/master/conf/uwsgi_params 因为我不知道哪个目录是nginx directory of the uWSGI distribution ...

如果我有帮助的话,我会使用FEDORA ...

nginx uwsgi
2个回答
2
投票

要查找文件的权限:

ls -al unix:///home/gaucan/temp/my_app/mysite.sock

这将打印一些信息列,其中第一列将是unix权限:

-rw-rw-r--   1 user group  1234 Mar 9 2015  name of file

第一个破折号很特殊,请忽略它。接下来的三个字符代表拥有该文件的用户的读取,写入和执行权限。接下来的3个代表拥有该文件的组。最后3个代表其他人。

nginx进程需要能够写入该套接字文件。

您不必将用户添加到与nginx相同的组中,但是您需要在套接字上允许适当的权限。这些书面说明对我没有100%的意义。

-无论如何将您的用户添加到组的说明-

查找进程的用户:

ps aux | grep nginx

其中一个输出列将是nginx进程的用户

要找出您属于哪个组:

groups

将打印您所属的unix组的空格分隔列表。

设置属于您的组的全新列表

sudo usermod -G group1,group2  username

请注意,这些组之间用逗号分隔,它们将清除所有现有的组,因此您需要使用逗号将所有现有的组重新键入该命令。

或者,使用usermod的--append标志:

sudo usermod --append -G www-data username

您必须完全注销并再次登录才能获得新组的效果。 (可能存在一种重新加载您的网上论坛的快捷方式,但我不知道其中一个)


0
投票

[不确定我做错了什么,但是只是花了整整一整天,我才重试了本教程,但是我尝试将所有配置直接写到/etc/nginx/nginx.conf中,然后它确实起作用了...所以那是不好的步骤在教程中(创建自己的mysite_nginx.conf,然后与一些启用了站点的符号链接,这些站点甚至在此新版本的nginx中都不存在...)

[也确实在/tmp/sock.sock mb中放置了套接字,也有帮助。。

© www.soinside.com 2019 - 2024. All rights reserved.