我正在尝试 uwsgi+nginx+django 教程,并被困在那里(链接直接到我被困的部分)\n https://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html#if-那不起作用
\n\nnginx error.log 说:
\n\n2015/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"\nRun 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 \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...
顺便说一句,我使用 FEDORA 如果有帮助的话......
\n要查找文件的权限:
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)
您必须完全注销并重新登录才能获得新组的效果。(可能存在重新加载组的快捷方式,但我不知道)
| 归档时间: |
|
| 查看次数: |
3007 次 |
| 最近记录: |