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
daemonize:true 使进程在后台运行
方法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 = ['*']