Django框架是一個用Python編寫的非常出名的web框架,利用Django框架我們可以快速開發出項目,但對於很多不懂運營服務器的小夥伴來說,部署上線應該是遇到坑最多的一個環節,那麼我們今天就來學習如何利用強大的寶塔面板來部署Django項目。
一、linux安裝寶塔面板
Centos終端安裝命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
Ubuntu終端安裝命令:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
通過終端命令安裝成功後,可以通過IP+8888端口號來訪問登入寶塔後臺,注意在終端安裝成功最後會出現默認的用戶名和密碼以及登錄後臺地址,注意記錄保存,登入後可以修改寶塔面板的登錄端口、賬號以及密碼。
二、安裝Nginx以及Mysql
成功登入寶塔面板後,點擊側邊欄軟件商店欄目,在第一頁的下方找到Nginx與Mysql點擊安裝,如下圖所示:
安裝Nginx與Mysql
在安裝Mysql的時候一定要注意版本問題,Django最新版已經不支持5.5以下版本,我們安裝的時候可以選擇安裝5.6或者5.7版本。
安裝Mysql5.7
等待安裝完成。
三、安裝Python項目管理器
安裝Python項目管理器
還是在軟件商店欄目下,位於分頁第三頁,如上圖所示,點擊安裝。
安裝成功後,點擊設置,在彈出的對話框中,注意左側側邊欄,有一個版本管理欄目,進入後選擇與項目對應的Python版本安裝,如下圖所示。
安裝Python
安裝成功之後切換到項目管理欄目,點擊添加項目
四、git拉取線上項目,在Python項目管理器添加項目
如果這裏你沒有項目,可以看看我這個專欄,有興趣的話一起學習,可私信我,我將這個項目線上倉庫推送給你用來測試。
此時你的項目就必須已經存在,可以通過git命令將線上倉庫項目拉取到/www/wwwroot文件夾下,或者/home/qbc文件夾下,qbc是我的用戶文件,linux所有的組成都是以文件夾的方式歸類,用戶也是一個文件夾。
按照要求選擇對應的版本及文件夾
映射域名
點擊映射,綁定一個域名,我這裏以本地IP爲例子。
之後這裏會有個問題,有可能虛擬環境中的uwsgi沒有安裝成功,通過這一步後,我們就要去終端測試,這裏我們手動進入虛擬環境去測試下。
手動進入虛擬環境安裝,進入虛擬環境方法:
激活虛擬環境:在命令行輸入 source 項目路徑/項目名_venv/bin/activate
如我這裏:source /home/qbc/coder/mysite/mysite_venv/bin/activate
終端測試uwsgi
我這裏uwsgi已經安裝成功了,如果未安裝成功一般是兩種錯誤提示未安裝gcc以及python3-devel
錯誤一:未安裝python3-devel
*** uWSGI compiling embedded plugins ***
[gcc -pthread] plugins/python/python_plugin.o
In file included from plugins/python/python_plugin.c:1:
plugins/python/uwsgi_python.h:2:10: 致命錯誤:Python.h:沒有那個文件或目錄
#include <Python.h>
編譯中斷。
解決辦法:
yum install python3-devel # centos系統安裝
sudo apt install python3-dev # ubuntu系統安裝
錯誤二:未安裝gcc
File "/tmp/pip-build-_3kmen6o/uwsgi/setup.py", line 77, in run
conf = uc.uConf(get_profile())
File "/tmp/pip-build-_3kmen6o/uwsgi/uwsgiconfig.py", line 750, in __init__
raise Exception("you need a C compiler to build uWSGI")
Exception: you need a C compiler to build uWSGI
解決辦法:
yum install gcc # centos系統安裝
sudo apt-get install gcc # ubuntu系統安裝
此時可以進入虛擬環境,通過pip命令安裝uwsgi
pip3 install uwsgi
uwsgi安裝成功,此時可以運行同步數據庫命令。
五、創建默認sqlite3數據庫或者配置Mysql數據庫
python3 manage.py makemigrations # 創建遷移文件
# 創建sqlite3數據庫(這裏也最容易出錯,一般都是版本問題引起的錯誤)
python3 manage.py migrate
如果這裏操作這兩步出現錯誤問題,那麼我們的項目肯定是沒辦法運行起來的,此時我的做法是直接改用Mysql數據庫,還記得剛開始我們已經安裝了數據庫嗎?
創建Mysql數據庫
側邊欄點擊數據庫==>點擊添加數據庫,如上圖所示,按照提示設置數據庫用戶名密碼。
修改項目mysite/settings.py文件的數據庫配置項,如下圖所示
修改mysite/settings.py數據庫配置項
點擊左側文件欄目,找到項目目錄settings.py文件,點擊編輯,將DATABASES項修改爲如下所示配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysite', # 數據庫名稱
'USER': 'mysite', # 用戶名稱默認是root
'PASSWORD': '123456', # 密碼
'HOST': '127.0.0.1', # 默認
'PORT': '3306', # 默認
}
}
激活虛擬環境,安裝mysqlclient
pip3 install mysqlclient
這一步如果安裝失敗,一般是缺少mysiql-devel,安裝之後再運行pip命令安裝即可解決
yum install mysql-devel
必須進入項目目錄,激活虛擬環境,執行同步數據庫命令,
python3 manage.py migrate
六、部署靜態文件
在mysite/settings.py中添加 STATIC_ROOT = '/home/qbc/coder/mysite/static/'
激活虛擬環境,進入項目文件,運行收集靜態文件命令
python3 manage.py collectstatic
進入/www/server/panel/vhost/nginx文件夾,找到映射域名.conf文件,點擊編輯,增加靜態文件路徑,如下圖所示:
增加的代碼
location /static/ {
alias /home/qbc/coder/mysite/static/;
}
location /media/ {
alias /home/qbc/coder/mysite/media/;
}
文件欄目,增加靜態文件路徑
之後去到python項目管理器裏邊,重啓項目,找到nginx,點擊設置,重啓即可訪問。