部署Django到阿里雲伺服器教程

農村的我發表於2018-09-03

原文轉載於:https://blog.csdn.net/qq_41590417/article/details/80509098

部署Django到阿里雲伺服器教程

基於Ubuntu16.04 + Python3 + nginx + mysql + Django

接下來先安裝這些必要的環境,這些操作都是在你已經購買了阿里雲伺服器。並且在本地你已經搭建好了Django部落格。現在我們所做的就是把本地的環境在阿里雲的伺服器上重新搭一遍。

這裡先簡單的說一下阿里雲伺服器,我自己買的是雲伺服器ESC,需要配置一下安全組規則,就是埠,按下圖配置即可,最重要的是22和88埠。

這裡寫圖片描述
然後就是我們的伺服器在例項裡,我的是Ubuntu16.04,要部署到阿里雲上點選遠端連線,第一次點選會彈出一個密碼,這就是你在阿里雲登入遠端連線的密碼,一定要記好,就會彈出這一次! 
這裡寫圖片描述
輸入密碼之後就進入了Ubuntu命令列模式,這時候你輸入你的Ubuntu賬號,預設root,然後輸入密碼,密碼是你在買伺服器時候就設定的,成功之後就進入了Ubuntu系統,我們整個部署過程都是在這個Ubuntu系統裡,命令列下進行。所以需要你多少掌握一些Ubuntu命令列的知識! 
這裡寫圖片描述 
整個部署過程我們還是使用到一個重要的軟體Xftp,這個軟體就相當於Ubuntu的介面系統,我們通過它連線上我們阿里雲伺服器的Ubuntu系統,連線成功之後就可以直接在本地通過Xftp和阿里雲Ubuntu系統傳送檔案。

開啟Xftp新建會話,然後在主機輸入你的阿里雲伺服器公網IP,下面的賬號密碼可以先不輸入,點選確定後會提示你輸入。 
這裡寫圖片描述 
點選確定後會提示你輸入賬號,賬號就是Ubuntu的預設root 
這裡寫圖片描述 
然後輸入密碼 
這裡寫圖片描述 
點選確定就進入了Ubuntu系統 
這裡寫圖片描述
這個左面顯示的是你的桌面,右面新建會話顯示的就是阿里雲伺服器上Ubuntu系統的目錄結構,在這裡我們可以直接從左面(你的本地桌面)往右面(阿里雲的Ubuntu系統)拖拽檔案,這個在後面我們部署的時候會非常方便!

一、安裝必要的軟體

1、安裝Django

先安裝pip3:

sudo apt-get update
sudo apt-get install pip3
  • 然後安裝Django,這個地方要注意安裝你所使用的Django版本:
pip3 install django2.0
  •  

2、安裝nginx

sudo apt-get update
sudo apt-get install nginx
  •  

安裝完成後。用你電腦的瀏覽器訪問你的伺服器的公網ip地址,看看安裝成功沒有!

3、安裝uwsgi

  1. 在你的本地電腦訪問https://uwsgi-docs.readthedocs.io/en/latest/Download.html,下載Stable/LTS版本的原始檔。

  2. 本地下解壓這個原始檔,然後用xftp把檔案拖放到阿里雲的Ubuntu的家目錄(home)下,使用cd命令進入到該資料夾下,按順序依次輸入下面三條命令:

    sudo apt-get install python3-setuptools
    sudo apt-get install python3-dev
    sudo python3 setup.py install
    •  

4、安裝MySQL(如果使用Django自帶的資料庫,跳過這步)

  1. 輸入下面安裝命令:

    sudo apt-get install mysql-server mysql-client
    •  

    安裝過程中會出現叫你輸入密碼,這個密碼一定要記住!

  2. 安裝完成輸入下面命令:

    mysql -u root -p
    •  

    然後輸入你剛剛設定的密碼,進去之後輸入下面命令:

    create database myblog
    •  

    建立一個myblog資料庫,這個資料庫名字跟你將來要還原的資料庫名字一樣,用xftp把你在本地備份的sql檔案拖到阿里雲Ubuntu的家目錄(home)下。

  3. 還原資料庫;進入家目錄(home),輸入下面命令:

    sudo mysql -u root -p myblog<myblog.sql
    •  
  4. 配置mysql檔案:

    sudo vim/etc/mysql/mysql.conf.d/mysqld.cnf
    •  

    然後註釋掉下面這行程式碼

    
    # band-address = localhost
    

二、配置專案

經過上面的步驟,如果一切順利你就已經把所需要的軟體和環境搭建好了,接下來我們就開始配置我們的部落格專案。

1、配置部落格專案

先用xftp把你的整個部落格專案拖到家目錄(home)那裡,然後開始配置nginx檔案:

cd /etc/nginx/sites-available
vim default

使用cd命令進入到sites-available資料夾,資料夾下有一個default檔案,使用vim開啟它,找到default檔案下的這段程式碼,如果沒有就要新增上去:

server_name 192.168.1.121;
  location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        # try_files $uri $uri/ =404;
        include  uwsgi_params;
                uwsgi_pass  127.0.0.1:8000;  
    }
location /static {
   alias /home/feixue/python/www/for_test/static;
}
location /media { 
    alias /home/ubuntu/blog/media; 
}

192.168.1.121替換成你自己伺服器公網IP地址;

static 那裡也要替換成你自己Django專案的static路徑;

media 同理換成你自己Django專案的media路徑,這是媒體檔案的資料夾;

注意:location後面是有空格的,必須要有!alias後面也是有空格的;include上面那句話也是要註釋掉的!

修改成完成後使用 wq 儲存退出(vim編輯器知識不懂的百度吧)

再輸入下面命令重啟服務:

sudo service nginx restart

2、配置uwsgi

在部落格專案的根目錄下,也就是有manage.py檔案的目錄下,新建一個uwsgi.ini檔案和一個run.log檔案

然後我們使用vim編輯器編輯uwsgi.ini檔案:

vim uwsgi.ini

檔案開啟是空的,我們新增如下程式碼:

[uwsgi]
chdir = /home/feixue/python/www/for_test 
module = for_test.wsgi:application 
socket = 127.0.0.1:8000 
master = true         
daemonize = /home/feixue/pyth/for_test/run.log
disable-logging = true

chdir 是你的部落格專案的根目錄,我這裡的專案名叫for_test;你要替換成你自己的路徑;

moudule 是你的入口wsgi模組,將for_test替換成你自己的專案名稱;

socket 是通訊埠設定,這個設定不用改,複製即可;

master = true 表示以主程式模式執行,不用改,複製即可;

daemonize 是你的日誌檔案目錄,這個路徑就是剛剛新建的run.log檔案的路徑;

disable-logging = true 表示不記錄正常資訊,只記錄錯誤資訊,否則你的日誌可能很快就爆滿了!

3、配置MySQL(如果使用Django自帶的資料庫,這步可以跳過)

修改setting.py 所在目錄的那個 init.py檔案使用vim編輯器開啟init.py檔案輸入一下程式碼:

import pymysql
pymysql.install_as_MySQLdb()

安裝mysql驅動:

pip3 install pymysql

4、修改settings.py檔案

開啟settings.py檔案找到下面程式碼並修改:

DEBUG = False
ALLOWED_HOSTS = ['192.168.178.128']

注意其中的IP地址要替換成你自己阿里雲公網的IP。

如果你順利的完成了上面的步驟,那麼恭喜你!你可以直接去瀏覽器輸入你的公網IP地址,就可以訪問了!

接下來我還會更新一些在部署中遇到的問題和解決辦法,如果你遇到什麼問題歡迎留言!

相關文章