NGINX& UWSGI - 尝试启动服务器时拒绝权限

时间:2018-05-06 00:49:50

标签: python nginx flask uwsgi

我正在尝试将raspberry pi 3变成一个完整的堆栈web开发服务器,我按照本指南here进行操作,然后在步骤4.16第53页,它说要输入这个命令

 >uwsgi —ini /var/www/lab_app/lab_app_uwsgi.ini

但是当我尝试这个命令时,我收到以下错误:

(venv)pi@raspberrypi:/var/www/lab_app $ uwsgi --ini /var/www/lab_app/lab_app_uwsgi.ini

[uWSGI] getting INI configuration from /var/www/lab_app/lab_app_uwsgi.ini
open("/var/log/uwsgi/lab_app_uwsgi.log"): Permission denied [core/logging.c line 288]

我知道这可能与组/用户权限有关,但我不确定如何添加或创建用户以获得启动此守护程序的权限。我目前正在尝试谷歌可能的答案,但如果有人能指出我正确的方向,我将不胜感激。

请同时找到下面的nginx.conf&位于/ var / www / lab_app /目录下的uwsgi.ini文件,提前致谢!

**lab_app_nginx.conf**

server {
listen  80;
server_name localhost;
charset utf-8;
client_max_body_size 75M;
location /static {
        root /var/www/lab_app/;
 }
location / { try_files $uri @labapp; }
location @labapp {
include uwsgi_params;
uwsgi_pass unix:/temp/labapp.sock;
 }
}

**lab_app_uwsgi.ini**

uid = www-data
gid = www-data
#application's base folder
base = /var/www/lab_app
#pytyhon module to import
app = hello
module = %(app)
home = %(base)/venv
pythonpath = %(base)
#sock file's location
socket = /temp/labapp.sock
#permissions for the socket file
chmod-socket = 666
#the variable that holds a flask application inside the modue import at line #6
callable = app
#location of log files
logto = /var/log/uwsgi/%n.log

2 个答案:

答案 0 :(得分:1)

配置的这一行说明了应该存储日志文件的位置:

logto = /var/log/uwsgi/%n.log

此过程似乎以www-data

运行

uid = www-data

因此,我要检查/var/log/uwsgi的用户/组,www-data是否有写权限?该目录是否存在?

www-data用户可能已经存在,应该在安装nginx时创建。如果不是,您可以使用useradd添加用户。可以使用chmod更改权限,可以使用chown更改所有权。

答案 1 :(得分:1)

尝试使用超级用户运行您的服务器

sudo uwsgi --ini /var/www/lab_app/lab_app_uwsgi.ini