總結經驗: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進行進程管理的。。。這我都沒弄過.後續再探討
相關文章
相關標籤/搜索