总结经验:uwsgi+django+centos 部署

centos+uwsgi+django

一 .centos的相关依赖安装html

  1. yum install python3-devel #若是是python2请使用 yum install python-devel
  2. yum install zilb-devel
  3. yum install libjpeg-turbo-devel

二.数据库服务的安装python

  1. sqlite的安装
    1. yum install sqlite
    2. 进入数据库命令: sqlite3
    3. 退出数据库命令: .q
  2. mysql 的安装
    1. 下载mysql的yum源
      1. wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm #centos7
      2. wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm #centos6
    2. 安装mysql的yum源
      1. rpm -ivh mysql57-community-release-el7-11.noarch.rpm #centos7
      2. rpm -ivh mysql57-community-release-el6-11.noarch.rpm #centos6
    3. 安装mysql
      1. yum install mysql-community-server

三.python虚拟环境mysql

  1. python3.4及以上能够使用 python3 -m venv 目录名(目前已经支持,ps对比之前的开发模式是virtualenv/virtualenvwrapper.)
  2. source /目录名/bin/activate
  3. 将项目拷贝目录名下,使用pip install -r requirements.txt 安装相关环境依赖

四.安装及测试nginx

  1. 检查python版本,以及django版本
  2. 检查django的settings中数据库中的配置是否正确,使用python manage.py makemigrations 和 python manage.py migrate 建立数据库模型
  3. 使用python manage.py runserver运行django项目,检查是否出错
  4. uwsgi的安装和测试
    1. pip install uwsgi
    2. 测试uwsgi到python是否连通
       def application(env, start_response):
           start_response('200 OK', [('Content-Type','text/html')])     
           return [b"Hello World"]
       
    3. 测试命令uwsgi --http :8000 --wsgi-file test.py #注http后面是空格
    4. 先在django的settings文件中确认Allow_host是否容许访问,在浏览器上输入IP:8000,若是显示Hello World着表示uwsgi到python连通
    5. 测试uwsgi到django是否连经过
      1. 是用命令 uwsgi --http :8000 --module mysite.wsgi #mysite.wsgi为项目的wsgi
      2. 在浏览器输入IP:8000进行测试
    6. 在项目根目录下建立uwsgi的配置文件uwsgi.in
         [uwsgi]
         socket = 服务器IP:8001 #注如在同一服务器上能够使用127.0.0.1
         chdir = /home/foobar/myproject/
         wsgi-file = myproject/wsgi.py
         master = true
         processes = 4
         threads = 2
      
    1. uwsgi服务启动命令 uwsgi --ini uwsgi.ini(这步本身部署的时候少了,折腾了一晚上。想哭的经历)
    2. 安装nginx
      1. yum install nginx
      2. 在/etc/nginx/conf.d/建立blog.conf
       upstream django {
           server IP:8001;	#对应uwsgi.ini中socket,也可一写为127.0.0.1
           }
       # configuration of the server
       server  {
           listen      8000;	#对应浏览器
           server_name IP;
           charset     utf-8;
           access_log  /var/log/nginx/blog_access.log;
           client_max_body_size 8M;   # adjust to taste
           location /media  {    #配置上传文件
               alias /usr/local/site/demo/project-blog/media;
           }
           location /static {    #配置静态文件
               alias /usr/local/site/demo/project-blog/static;
           }
           location / {
               uwsgi_pass  django;    #对应upstream django
               include     /etc/nginx/uwsgi_params;
           }
       }
       
    3. 启动nginx service nginx start, 注:在每次修改nginx的配置文件后要记得重启或者reloadnginx服务
    4. 请在浏览器输入IP:8000进行测试
    5. 注:还有使用Gunicorn进行部署,使用supervisor进行进程管理的。。。这我都没弄过.后续再探讨
相关文章
相关标签/搜索