前言
作者:陳運智
本人只在csdn寫博客
阿里云服務器使用寶塔面板部署django
- 部署方式
- 系統環境
- Django專案結構
- 使用shell登錄阿里云服務器下載面板
- 下載所需要的環境
- 組態檔
- 配置靜態檔案
- 獲取專案模塊(包)
- 設定資料庫
- 資料庫匯入sql時候出錯,導不進去
- 匯入專案
- 配置環境
- 配置uwsgi
- 配置nginx反向代理
- 錯誤
- 參考文章
- MySQL
部署方式
nginx1.18+uwsgi+python3.8.5+django3.1.4+mysql5.6.5 -----使用寶塔面板快速部署
系統環境
阿里云服務器,1核2g centos7.6 安全組全部放行(按需求,寶塔需要的埠和Django的埠一定要放行,部署完后可以再關埠);
mysql5.7(新版寶塔已經可以安裝8.0不過需要2核的服務器才行,我是不太行了,根據除錯環境的mysql版本選擇) nginx1.18,python專案管理器1.9 ;
Django專案結構
此次主要是演示寶塔面板部署python專案,所以我只建了一個基本的Django專案 內含一個app,一個html和一些css js檔案,

使用shell登錄阿里云服務器下載面板
以下鏈接介紹了寶塔安裝教程, 埠設定,面板安裝都有,
https://chenyunzhi.blog.csdn.net/article/details/107326630

使用以上地址打開面板,然后登錄
下載所需要的環境
再到軟體商城,我們只需下載需要的就行,nginx,mysql,ftp,和Python專案管理器 1.9

組態檔
配置靜態檔案
首先感謝這篇文章
進入setting.py檔案
在最后面添加
STATIC_ROOT=os.path.join(BASE_DIR,'static')
然后terminal中輸入以下命令就可以打包靜態檔案了,注意我這里有165個靜態檔案,你看看你是不是零:
python manage.py collectstatic

打包好了之后在注釋,添加以下命令
STATICFILES_DIRS=(
os.path.join(BASE_DIR,'static'),
)

獲取專案模塊(包)
python3 -m pip freeze > requirements.txt

設定資料庫

資料庫匯入sql時候出錯,導不進去
sql版本不一樣,比如說我,我在本地使用的MySQL是8.0版本的,寶塔里面是5.6,所以我匯出來的sql編碼有點區別,這里我們可以調一下編碼
匯入專案
檔案匯入wwrwoot目錄中

然后等待它上傳就行

上傳完成后在settings.py將debug改為False ,database配置為剛才記錄的資料庫名 用戶名和密碼可以直接在寶塔面板里編輯


如果view中使用命令呼叫資料庫也必須得修改

配置環境
打開寶塔里已經安裝好的python專案管理器,在版本管理里先安裝所需的python版本,我這用的是3.8.5(盡量和本地運行專案的python一致,避免踩肯),注意:python專案管理器所安裝的python版本和各種依賴模塊都是在虛擬環境中,全域shell里呼叫不了,

路徑是專案的根路徑
埠不要設定成8000會和nginx的埠沖突

然后他會自己加載模塊
這里注意一下:我剛開始總會提示創建模塊失敗,原因是我的這個檔案的目錄創建了中文,修改成英文就好了

模塊創建好了之后會在專案里面生成一個虛擬環境的檔案

搞定模塊后,先暫停正在運行的python專案,還有一些坑在這里,在xhsell中進入寶塔終端,切換到專案根目錄,啟用專案虛擬環境
cd /www/wwwroot/RecruitDataVsible-master1/
source ./ccccc_venv/bin/activate
python3 manage.py runserver

配置uwsgi
static-map = /static=/www/wwwroot/RecruitDataVsible-master1/static

如果不添加就報錯主專案中的運行檔案就報錯,如果你的檔案出錯也可能會出現這種錯誤

保存后點“重啟”重啟專案
在瀏覽器地址欄里輸入 服務器公網IP:8001 剛才部署的專案已經可以通過ip和埠訪問了
首先得開啟埠
在安全里打開資料庫和專案的埠,阿里云案例那邊也得開教程地址


這里如果沒有正常訪問的同學請檢查以下幾項配置
(1)是否收集靜態檔案至static
(2)DEBUG是否關閉
(3)寶塔面板-安全里是否放行了8000埠和8001埠
(4)云服務器安全組里是否放行了8000埠和8001埠
(5)靜態檔案路徑是否有錯誤
配置nginx反向代理
(1)在專案管理點擊“映射”,輸入已經提前決議到此服務器的域名(就是你購買的域名)
我這里已經配置好了,就不點擊了

2)在“網站“里找到剛才生成的專案,在”設定“里找到”反向代理“,點擊”組態檔“

在檔案中添加以下代碼
location /static/
{
alias /www/wwwroot/RecruitDataVsible-master1/static/;
}

重新啟動nginx和配置管理器

錯誤:2021/04/09 11:05:28 [emerg] 279778#0: bind() to 0.0.0.0:8000 failed(98: Address already in use
原因: 埠被占用,我猜是因為nginx也是用8000埠,所以如果你的專案是8000埠必須改一下
輸入域名就可加載出來了

將寶塔面板-安全里放行的8000埠洗掉,這樣別人只能通過域名訪問網站,不能通過IP:埠來訪問了,
云服務安全組里的8000埠可以不刪,因為一臺服務器可能會部署多個Django專案,每次都要重新開很麻煩
錯誤


參考文章
使用寶塔面板的python專案管理器部署django專案
寶塔面板成功部署Django專案流程
寶塔部署django的坑
MySQL
Navicat運行sql檔案出現 [ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘ 錯誤原因
使用寶塔面板創建資料庫并用navicat連接
本人博客:https://blog.csdn.net/weixin_46654114
本人b站求關注:https://space.bilibili.com/391105864
轉載說明:跟我說明,務必注明來源,附帶本人博客連接,
請給我點個贊鼓勵我吧

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/281419.html
標籤:其他
上一篇:Node專案中使用jsonwebtoken實作JWT認證
下一篇:SSRF服務器請求偽造
