uwsgi+nginx如何换组?

waT*_*lon 5 nginx uwsgi

我正在尝试 uwsgi+nginx+django 教程,并被困在那里(链接直接到我被困的部分)\n https://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html#if-那不起作用

\n\n

nginx error.log 说:

\n\n
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"\n
Run Code Online (Sandbox Code Playgroud)\n\n

教程说要修复它,请执行以下操作: \n \nYou may also have to add your user to nginx\xe2\x80\x99s group (which is probably www-data), or vice-versa, so that nginx can read and write to your socket properly.\n\n但是我是 Linux 菜鸟,我不知道该怎么做,或者如何查明该组是否是 www-data ......已经做了一些混乱在将某些文件夹的所有者更改为用户之前:“gaucan”

\n\n

我也在教程中跳过了这一步:\n \nYou 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\n\ns因为我不知道哪个目录是nginx directory of the uWSGI distribution...

\n\n

顺便说一句,我使用 FEDORA 如果有帮助的话......

\n

chu*_*die 2

要查找文件的权限:

ls -al unix:///home/gaucan/temp/my_app/mysite.sock
Run Code Online (Sandbox Code Playgroud)

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

-rw-rw-r--   1 user group  1234 Mar 9 2015  name of file
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

要查找进程的用户:

ps aux | grep nginx
Run Code Online (Sandbox Code Playgroud)

输出列之一将是 nginx 进程的用户

要了解您属于哪些组:

groups
Run Code Online (Sandbox Code Playgroud)

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

设置您所属组的全新列表

sudo usermod -G group1,group2  username
Run Code Online (Sandbox Code Playgroud)

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

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

sudo usermod --append -G www-data username
Run Code Online (Sandbox Code Playgroud)

您必须完全注销并重新登录才能获得新组的效果。(可能存在重新加载组的快捷方式,但我不知道)