🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 部署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端口\)