Ubuntu 上配置Python3 + django + Nginx + uwsgi

1、首先安装PIP3

Ubuntu 上虽然安装了Python3 ,但是没有安装 PIP3 我们需要安装 PIP3,在线安装的好处是,不用到处

找依赖包,但坏处是不不能自定义安装位置。

sudo apt-get install python-3 pip

2、在线安装Django

pip3 install django

测试Django 时候安装成功

python3
import django
django.VERSION

注意:Ubuntu 16.04 上自带 python 2 和 python 3 我们是配置 Python3 的环境,所以一些命令都要加上3,如 python3 manage.py runserver

3、安装uWSGI

sudo pip3 install uwsgi

注意:uWSGI 不支持 Windows 安装 ,Windows 安装会报如下错误

4 、启动uWSGI 

下面以 website 项目为例 ,在 Django 下新建 website 项目

方法1:命令行方式启动 

a、进入 website 工程目录里面

cd website

 b、输入 uWSGI 启动命令

uwsgi --http :8088 --module website.wsgi     # website 为django 工程名称

此时,不用输入 python manage.py runserver 也可以启动 Django 了

在浏览器中访问:http://localhost:8088,项目正常。

注意这时项目的静态文件是不会被加载的,需要用nginx做静态文件代理。

命令行方式启动常用参数: 参数之间用 -- 分割

http协议类型和端口号

processes开启的进程数量

module指定py文件,该文件中必须要有一个命名为application的全局变量,该变量指向一个wsgi实例

wsgi-file载入wsgi-file

daemonizetrue 使进程在后台运行

方法2:配置文件方式启动服务

1、在 Django website 工程下,新建 uwsgi.ini 的配置文件

    文件内容:参数同上  

        [uwsgi]

        chdir = /home/lee/mysite/website              # 在失去权限前,使用chdir()到指定目录

        socket = :8088                                              # 未配置Nginx 时 ,将socket 改成 http

        module = website .wsgi

        processes = 2

        threads = 4

2、进入 website 工程目录里面 ,输入

uwsgi --ini uwsgi.ini                     # 相对路径

或者,在任意目录下 ,uwsgi.ini 的绝对路径

uwsgi --ini /home/lee/mysite/website/uwsgi.ini    #绝对路径

在浏览器中访问:http://localhost:8088,项目正常。

5、配置Nginx 

UBuntu Nginx 主配置文件路径 :/etc/nginx/nginx.conf 

因为 Nginx 主配置文件 nginx.conf 中设置了 include /etc/nginx/sites-enabled/* ; 

所以 我们只需在 sites-enabled 文件夹中 添加或修改(default)配置文件即可。

1、新建 nginx_home 配置文件

sites-enabled 文件夹中 新建 nginx_home (文件名任取) 配置文件

2、在 nginx_home 文件中添加配置内容
server {
    listen      81;                     # 由于 default 文件设置了80端口,设置成其他的

    server_name 127.0.0.1; 

    charset     utf-8;

    client_max_body_size 75M;   

    location /static {
        alias	      /home/lee/mysite/myblog/static;      #静态资源路径
    }

    location / {
        include     uwsgi_params; 
        uwsgi_pass 127.0.0.1:8088;                         
    }
}

注意:配置完成后需要重启 nginx 

sudo sudo /etc/init.d/nginx restart

然后启动 uwsgi ,在浏览器中输入 127.0.0.1:81 即可打开django 项目 ,注意这里的地址是:81端口,不是:8088 端口,8088由 uwsgi 启动,:81由 Nginx 启动

此时,页面正常,但是Admin 后台 css文件不显示,我们还要设置 ADMIN后台 静态资源

把Django自带的静态文件收集到同一个static中,不然访问Django的admin页面会找不到静态文件。在django的setting文件中,添加下面一行内容:

STATIC_ROOT = os.path.join(BASE_DIR, "static")

然后到项目目录下执行:

python manage.py collectstatic

修改配置文件

DEBUG = False
ALLOWED_HOSTS = ['*']

转载于:https://my.oschina.net/esdn/blog/1353210

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值