1. 程式人生 > >django專案部署到伺服器

django專案部署到伺服器

如何在阿里雲上部署 Django 應用程式

概述與目的

此帖介紹瞭如何(利用 Ubuntu 作業系統)在阿里雲上啟動和部署 Django 應用程式。這兩個流程的詳細步驟說明如下所述:
● 使用阿里雲管理控制檯啟動您的第一個 Linux 例項
● 在此例項上安裝和部署 Django 應用程式

關於 Django

Django 是一個用 Python 語言寫的開源 Web 框架,可幫助開發人員在構想形成後僅數小時內啟動 Web 應用程式。它遵循模型檢視模板 (MVT) 來構建應用程式,這可降低 Web 開發的複雜性,同時可讓開發人員集中精力編寫應用程式。它為網站地圖、內容管理、使用者鑑權、RSS 提要及其他任務提供開箱即用的設定。一些高流量網站使用 Django 是因為它能夠快速、靈活地進行調整,從而可滿足流量波動高峰期的需求。

前提條件

1. 為 Python 應用程式安裝 virtualenv 和 virtualenv wrapper,目的在於為 Python 專案建立獨立的環境。
● 安裝 pip

sudo apt-get install python-pip
● 安裝 virtualenv
sudo pip install virtualenv
● 建立目錄以儲存您的 virtualenv
mkdir ~/.virtualenvs
● 安裝 virtualenwrapper
sudo pip install virtualenvwrapper
● 將 WORKON_HOME 設定為您的 virtualenv 目錄

匯出 WORKON_HOME=~/.virtualenvs
● 將 WORKON_HOME 設定為您的 virtualenv 目錄
匯出 WORKON_HOME=~/.virtualenvs
● 將  virtualenvwrapper.sh  新增到  .bashrc
將此行新增到 ~/.bashrc 的末尾,以便載入 virtualenvwrapper 命令。
/usr/local/bin/virtualenvwrapper.sh
退出,然後重新開啟您的 shell,或者使用  .bashrc or source ~/.bashrc
 命令重新載入 .bashrc,然後一切準備就緒。

2. 安裝 git。

apt-get install git

3. 安裝 Nginx 作為 Web 伺服器,這樣您便可在其之後執行您的應用程式。

Sudo apt-get install nginx

啟動您的第一個 Linux 例項

接下來向您介紹使用阿里雲管理控制檯執行 ECS 例項的相關步驟。

1. 登入到您的帳戶,然後導航到“產品與服務”部分下的“雲伺服器”。單擊側邊欄選單中的概覽。這會顯示執行中的例項列表。單擊購買例項從任意地域購買例項,或者繼續到下一步建立新例項。

2. 單擊側邊欄選單中的例項。在例項列表中選擇所需地域,然後單擊右上方欄中的建立例項

3. 系統會將您重新定向到“產品購買”控制檯,在此您需要選擇偏好的資源包 - 對 ECS 例項和資料傳輸提供特殊定價的初級資源包或提供兩種定價模式的高階購買資源包。您可以根據自身需求選擇訂閱(按月或按年)或者按量付費。此案例中,我們選擇了“按量付費”。

4. 在此視窗中,選擇要在其中啟動 ECS 例項的資料中心地域和可用性區域。如果選擇了地域但未選擇可用性區域,系統會將例項隨機放在任何區域。

5. 現在您需要選擇自己想要建立的例項型別。根據自身需求,從“生成”選項卡中選擇生成例項型別。生成型別根據配置和所用的計算能力表示不同的例項型別。

6. 接下來,選擇網路型別以啟動您的 ECS 例項。可根據自身需求選擇經典網路或專有網路。在經典網路中,阿里雲以分散式方式分配 IP 地址。它適合於需要簡單快速地使用 ECS 的使用者。專有網路更多的是一種邏輯隔離私有網路,它支援專用連線。它適合於熟悉網路管理的使用者。選擇適當的網路型別後,選擇網路計費型別:資料傳輸固定頻寬。在這兩種情況下,您都需要設定網路頻寬峰值(最大資料傳輸速率)。

7. 現在,您需要選擇作業系統。每個選項下都提供了不同作業系統版本的列表。選擇 Ubuntu。

8. 根據自身需要,從下拉選單中選擇系統磁碟型別。您還可以通過單擊“新增磁碟”向此列表新增更多磁碟。

9. 在“安全設定”部分中,您可以建立密碼以提高安全性,或者在此階段跳過此步驟並稍後從管理控制檯執行此操作。

10. 在“採購計劃”部分中,鍵入您的例項名稱並設定要啟動的例項的數量。

11. 在“概覽”部分檢視配置詳情和總價,然後單擊立即購買

12. 單擊開通確認業務訂單並啟動例項。

13. 啟動例項後,您可以在控制檯的例項選項卡中檢視該例項。

安裝和部署 Django 應用程式

您已使用阿里雲管理控制檯建立和啟動 ECS 例項,接下來讓我們瞭解如何安裝和部署 Django 應用程式。

1. 使用 ssh 命令登入到您的伺服器

2. 輸入密碼

3. 通過建立一個新的 virtualenv 為部署 Django 應用程式設定環境:

mkvirtualenv DjangoApp
要退出新的 virtualenv,請使用 deactivate。
您可以使用 workon 在環境之間切換。要載入或在 virtualenv 之間切換,請使用 workon 命令:
workon DjangoApp

4. 在您的當前環境中安裝 Django

pip install Django

5. 使用 django-admin 命令建立樣本專案並將目錄更改為專案資料夾。

django-admin startproject todoApp
cd todoApp/

6. 遷移或引導您的資料庫。

python manage.py migrate

7. 建立超級使用者以訪問管理面板。

python manage.py createsuperuser

8. 設定使用者後,通過執行由 manage.py 操作的 runserver 命令測試您的應用程式

python manage.py runserver 0.0.0.0:8000
您將看到以下內容在埠 8000 上執行

轉至 /admin,這是您的管理面板,您可在此管理應用程式。

現在使用 Nginx 將您的應用程式置於 Web 伺服器之後。

9. 建立資料庫架構 開通 python 環境。
● 將目錄更改為 Django 專案目錄
● 執行以下命令

python manage.py migrate

10. 收集所有靜態檔案(css、js 等)
● 執行以下命令以在任意特定位置收集所有靜態檔案

Python manage.py collectstatic --noinput
● 開發人員負責將 STATIC_URL 路徑設定為將收集所有靜態檔案的位置。
● 這些變數在專案目錄內的 setting.py 中定義。
1. STATIC_URL
2. STATICFILES_DIRS
3. STATIC_ROOT

11. 使用 uwsgi 伺服器安裝 uwsgi 庫並啟動伺服器。

pip install uWSGI
● 建立用於部署 Django 應用程式的 ini 檔案
vim uwsgi.ini

● 將其儲存到應用程式目錄上的 uwsgi.ini。如需進一步瞭解如何編寫 ini 檔案,請參閱 Python/WSGI 應用程式快速入門。執行此命令以啟動您的應用程式。

uwsgi uwsgi.ini (您的 ini 檔案)

12. 更改 nginx 配置檔案以用於應用程式。

server   {       listen 80 default_server;        		listen [::]:80 default_server ipv6only=on;        		server_name localhost;  location /static/   {        			include uwsgi_params;        			alias /root/todoApp/public/;  }  location  /    {      			  include uwsgi_params;      			  uwsgi_pass unix:/tmp/uwsgi.sock;    		 } }

13. 重啟 nginx,隨後您的應用程式將啟動並在埠 80 上的 nginx 之後執行。

結論

在本文中,我們討論瞭如何在阿里雲上部署 Django 應用程式。概括地說,第一步是(利用 Ubuntu 作業系統)執行 ECS 例項。然後,您可以在此例項上安裝和部署 Django 應用程式。請注意前提條件,確保順利完成部署。