我正在研究如何在 Ubuntu 16.04 上使用 uWSGI 和 Nginx 服务 Django 应用程序。在文章的“为 uWSGI 创建 systemd 单元文件”的末尾,他们讨论了www-data用户。这是什么,为什么重要?
我正在 EC2 上使用 Ubuntu 14.04 LTS。我想将默认的python解释器从python 2.7更改为默认安装的3.4.0。
当我做:
/home/ubuntu$ which python
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
看着/usr/bin/我看到:

所以很明显它就在那里。我如何将其设置为默认值?
按照本指南使用临时站点测试部署,我已在 Ubuntu 16.04 上使用以下命令安装了 python 3.6:
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python3.6
Run Code Online (Sandbox Code Playgroud)
不幸的是,我现在想使用 anaconda 包管理器,因此为了避免冲突,我想删除升级的所有痕迹。如何?
我正在研究如何在 Ubuntu 16.04 上使用 uWSGI 和 Nginx 服务 Django 应用程序。
我已经完成了 tut 并重新启动了 nginx 和 uwsgi。我注意到,如果我访问服务器的 IP,我会看到我的站点(让我认为 uwsgi 工作正常)。但是,如果我转到www.mysite.com,则会收到 502 错误。在我的nginx的配置文件/etc/nginx/sites-available是mysite包含:
server {
listen 80;
server_name mysite.com www.mysite.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/deploy/mysite;
}
location / {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/mysite.sock;
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
$ systemctl status uwsgi
Failed to connect to bus: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我很困惑,我知道我一直在处理一些 uwsgi 文件和
$ sudo systemctl …Run Code Online (Sandbox Code Playgroud) 我正在通过https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-ubuntu-16-04进行工作,并已到达该部分关于创建 systemd 单元文件。
该文件如屏幕截图中所示,但我对以下行感到困惑:
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown sammy:www-data /run/uwsgi'
Run Code Online (Sandbox Code Playgroud)
我们将使用 ExecStartPre 指令来设置运行服务器所需的部分。这将确保 /run/uwsgi 目录已创建,并且我们的普通用户以 www-data 组作为组所有者拥有该目录。带有 -p 标志的 mkdir 和 chown 命令都会成功返回,即使不需要它们的操作。这就是我们想要的。
用简单的英语来说,这是什么意思以及为什么要这样做?
nginx ×2
permissions ×2
python ×2
server ×2
14.04 ×1
16.04 ×1
amazon-ec2 ×1
users ×1
webserver ×1