---
# System prepended metadata

title: Ubuntu部署Django 4專案系列-程式碼更新(GitHub+uWSGI+Nginx)

---

# Ubuntu部署Django 4專案系列-程式碼更新(GitHub+uWSGI+Nginx)
> [name=Sharon Mai] [time=20230315, Wed] [color=#907bf7]

## ↪️總目錄：[Ubuntu部署Django 4專案全系列](https://hackmd.io/@ppp300a/ubuntu-django-4/%2FWfdRre0aRhKgHZYwsN9gNA)

{%hackmd a0ktF64jQXalgAyZHtiXbQ %}



## 抓GitHub上專案更新的程式碼
1. 開啟終端機
2. 進入Django專案資料夾有manage.py的這層
![](https://i.imgur.com/3xrCfo3.png)
3. 執行更新程式碼([初次使用GitHub Clone-請點我](/CJjUaV-TQYyf6DSntZiFsA))
    ```
    git pull origin master
    ``` 
    ![](https://i.imgur.com/XEfu1qg.png)

## Django收集所有靜態文件
> 在Python 3.9的虛擬環境中操作
### 啟動虛擬環境([尚未安裝虛擬環境-請點我](/t1KY6gxtT1GaZ8yY3SqP1g))
1. 到虛擬環境版本的bin資料夾中
![](https://i.imgur.com/f6Xgr4o.png)
2. 啟動 > 前綴有出現()即啟動成功，此範例為(yingmi_env)
    ```
    source activate
    ```
3. 使用`cd指令`到Django專案資料夾有manage.py的這層
4. 收集靜態文件
    ```
    (yingmi_env) python manage.py collectstatic
    ```

## uWSGI重啟
> 在Python 3.9的虛擬環境中操作
1. 到Django專案資料夾找到有uwsgi.ini的這層
2. 重啟
    ```
    (yingmi_env) uwsgi --reload uwsgi.ini
    ```

## Nginx重啟
1. 開啟終端機
2. 重啟
    ```
    sudo systemctl restart nginx
    ```
3. 輸入域名確認網站順利即成功
### 若啟動失敗(1)
1. 清空啟用的端口，此範例預設為80
    ```
    sudo fuser -k 80/tcp
    ```
2. 重啟
    ```
    sudo systemctl restart nginx
    ```
### 若啟動失敗(2)
1. cd到不能再根的根目錄
2. 到文件配置的預設路徑中
    ```
    cd /etc/nginx/sites-enabled/
    ```
3. 只留有使用的配置文件，刪除其餘的。此範例配置文件為mysite.txt
![](https://i.imgur.com/3FAa6PB.png)

