#### 部署Django应用 {#django}
> 注意: python2和python3 命令不同 python/python36
> Centos系统自带python2, 由于YUM和部分系统组件需要使用python2,python3版本的镜像会保留python2,python3版本的镜像运行解析器命令为: python3.6
1. 在 `/data/wwwroot/`创建一个文件夹用来存放Django程序, 这里假设文件夹名为`django_project`
2. 上传Django程序到`/data/wwwroot/django_project`目录下,这里假设文件夹名称`project`
3. \(可选,推荐\) 在`/data/wwwroot/django_project` 目录下运行命令 `virtualenv env` (py3 使用 `python3.6 -m venv env` ) 生产Python虚拟环境,以便隔离系统Python环境\(env为虚拟环境生成的文件夹名称可以自定义\)
4. 启用Python虚拟环境,运行命令 `source /data/wwwroot/django_project/env/bin/active`,启用后服务器主机名会带上`(env)` 字样,表示激活成功
5. 安装Django程序所需依赖 进入上传的Django程序目录 一般开发者都会将依赖信息保存到程序目录下的`requirements.txt`文件里 运行命令 `pip install -r requirements.txt`安装所需要的依赖
6. 根据自己网站程序等实际情况修改 程序目录里的配置文件,一般文件名为settings.py 在此文件中设置好数据库等相关信息,附Mysql设置,请根据实际情况修改
```
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dj_project',
'PORT': '3306',
'HOST': '127.0.0.1',
'USER': 'root',
'PASSWORD': '123456'
}
}
```
7. 创建数据库,然后初始化数据库 `python manage.py migrate`
8. 启动程序 `python manage.py runserver 0.0.0.0:8080`
9. 测试程序是否正常运行 浏览器上访问 ip:8080 \(阿里云安全组记得先打开8080端口,测试可以用后在关闭\)
10. 配置uwsgi, 在`/etc/uwsgi.d/`目录下创建一个配置文件名称自定义后缀ini即可,配置内容参考一下↓ 示例中创建 名称为dj\_project.ini的文件 ,新建配置文件后 运行命令
```
chown uwsgi:uwsgi -R /etc/uwsgi.d/
```
dj\_project.ini文件内容\(根据实际情况进行配置 主要修改含有中文注释的部分\):
```
[uwsgi]
plugins = python
master = true
protocol = uwsgi
socket = 127.0.0.1:8000 #监听端口
wsgi-file = /data/wwwroot/django_project/project/project/wsgi.py # wsgi.py目录
home = /data/wwwroot/django_project/env # python虚拟环境目录
chdir = /data/wwwroot/django_project/project #项目目录,即你上传的Django程序目录
buffer-size = 8192
enable-threads= true
close-on-exec = true
```
1. 重启uwsgi 命令 `systemctl restart uwsgi` 然后查看uwsgi是否正常运行`netstat -anopt`查看uwsgi端口是否启用 运行命令`systemctl status uwsgi` 输出结果没有明显的错误信息
2. 配置Nginx,修改`/etc/nginx/conf.d/default.conf`
配置内容如下:
```
server {
listen 80;
server_name _; # 你注册的域名
root /data/wwwroot/django_project; # 程序目录 根据实际情况修改
location / {
include uwsgi_params;
uwsgi_read_timeout 3600;
uwsgi_pass 127.0.0.1:8000; # 这一项根据你uwsgi的端口设置进行修改
}
location ~/static/ { # 动静分离 需要配置否则部分页面无法加载样式和js,根据程序实际情况以及Django路由等进行设置
root /data/wwwroot/django_project/project/project/; # 你django静态资源(css/js/img等)目录
}
}
```
13. 重启Nginx `systemctl restart nginx`,然后访问你的IP 或域名 \(阿里云安全组需要打开80和443端口\)
- 关于本书
- 获取一键安装包
- Django 实战指南(Linux)
- 镜像说明
- 如何部署Django应用?
- 如何上传和管理文件?
- 如何挂载数据盘?
- 如何设置HTTPS访问?
- 如何修改上传的文件权限?
- 如何查看和管理日志文件?
- 如何可视化管理数据库?
- 如何修改MySQL密码?
- 常见问题
- Django 实战指南(Windows)
- 镜像说明
- 如何部署Django应用?
- 如何上传和管理文件?
- 如何设置HTTPS访问?
- 如何查看和管理日志文件?
- 如何管理数据库?
- 如何修改MySQL密码?
- 服务启停
- 常见问题
- 备份
- 升级
- 域名管理
- 域名解析
- 域名绑定
- 云服务器操作
- Linux:登录与文件管理(SFTP)
- Windows:远程桌面与文件管理
- 安全组设置
- 快照备份
- 挂载数据盘
- 附:常用账号与密码说明
- 附:常见Linux命令操作