#### 部署Django應用 {#django}
> 注意: python2和python3 命令不同 python/python36
> Centos系統自帶python2, 由于YUM和部分系統組件需要使用python2,python3版本的鏡像會保留python2,python3版本的鏡像運行解析器命令為: python3.6
1. 在 `/data/wwwroot/`創建一個文件夾用來存放Django程序, 這里假設文件夾名為`django_project`
2. 上傳Django程序到`/data/wwwroot/django_project`目錄下,這里假設文件夾名稱`project`
3. \(可選,推薦\) 在`/data/wwwroot/django_project` 目錄下運行命令 `virtualenv env` (py3 使用 `python3.6 -m venv env` ) 生產Python虛擬環境,以便隔離系統Python環境\(env為虛擬環境生成的文件夾名稱可以自定義\)
4. 啟用Python虛擬環境,運行命令 `source /data/wwwroot/django_project/env/bin/active`,啟用后服務器主機名會帶上`(env)` 字樣,表示激活成功
5. 安裝Django程序所需依賴 進入上傳的Django程序目錄 一般開發者都會將依賴信息保存到程序目錄下的`requirements.txt`文件里 運行命令 `pip install -r requirements.txt`安裝所需要的依賴
6. 根據自己網站程序等實際情況修改 程序目錄里的配置文件,一般文件名為settings.py 在此文件中設置好數據庫等相關信息,附Mysql設置,請根據實際情況修改
```
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dj_project',
'PORT': '3306',
'HOST': '127.0.0.1',
'USER': 'root',
'PASSWORD': '123456'
}
}
```
?
7. 創建數據庫,然后初始化數據庫 `python manage.py migrate`
8. 啟動程序 `python manage.py runserver 0.0.0.0:8080`
9. 測試程序是否正常運行 瀏覽器上訪問 ip:8080 \(阿里云安全組記得先打開8080端口,測試可以用后在關閉\)
10. 配置uwsgi, 在`/etc/uwsgi.d/`目錄下創建一個配置文件名稱自定義后綴ini即可,配置內容參考一下↓ 示例中創建 名稱為dj\_project.ini的文件 ,新建配置文件后 運行命令
```
chown uwsgi:uwsgi -R /etc/uwsgi.d/
```
?
dj\_project.ini文件內容\(根據實際情況進行配置 主要修改含有中文注釋的部分\):
```
[uwsgi]
plugins = python
master = true
protocol = uwsgi
socket = 127.0.0.1:8000 #監聽端口
wsgi-file = /data/wwwroot/django_project/project/project/wsgi.py # wsgi.py目錄
home = /data/wwwroot/django_project/env # python虛擬環境目錄
chdir = /data/wwwroot/django_project/project #項目目錄,即你上傳的Django程序目錄
buffer-size = 8192
enable-threads= true
close-on-exec = true
```
1. 重啟uwsgi 命令 `systemctl restart uwsgi` 然后查看uwsgi是否正常運行`netstat -anopt`查看uwsgi端口是否啟用 運行命令`systemctl status uwsgi` 輸出結果沒有明顯的錯誤信息
2. 配置Nginx,修改`/etc/nginx/conf.d/default.conf`
配置內容如下:
```
server {
listen 80;
server_name _; # 你注冊的域名
root /data/wwwroot/django_project; # 程序目錄 根據實際情況修改
location / {
include uwsgi_params;
uwsgi_read_timeout 3600;
uwsgi_pass 127.0.0.1:8000; # 這一項根據你uwsgi的端口設置進行修改
}
location ~/static/ { # 動靜分離 需要配置否則部分頁面無法加載樣式和js,根據程序實際情況以及Django路由等進行設置
root /data/wwwroot/django_project/project/project/; # 你django靜態資源(css/js/img等)目錄
}
}
```
13. 重啟Nginx `systemctl restart nginx`,然后訪問你的IP 或域名 \(阿里云安全組需要打開80和443端口\)
- 關于本書
- 獲取一鍵安裝包
- Django 實戰指南(Linux)
- 鏡像說明
- 如何部署Django應用?
- 如何上傳和管理文件?
- 如何掛載數據盤?
- 如何設置HTTPS訪問?
- 如何修改上傳的文件權限?
- 如何查看和管理日志文件?
- 如何可視化管理數據庫?
- 如何修改MySQL密碼?
- 常見問題
- Django 實戰指南(Windows)
- 鏡像說明
- 如何部署Django應用?
- 如何上傳和管理文件?
- 如何設置HTTPS訪問?
- 如何查看和管理日志文件?
- 如何管理數據庫?
- 如何修改MySQL密碼?
- 服務啟停
- 常見問題
- 備份
- 升級
- 域名管理
- 域名解析
- 域名綁定
- 云服務器操作
- Linux:登錄與文件管理(SFTP)
- Windows:遠程桌面與文件管理
- 安全組設置
- 快照備份
- 掛載數據盤
- 附:常用賬號與密碼說明
- 附:常見Linux命令操作