国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

將本地Django項目部署到服務器上(Ubuntu20.04)

這篇具有很好參考價值的文章主要介紹了將本地Django項目部署到服務器上(Ubuntu20.04)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最近因為項目的需求開始正在搭建一個個人網站。在本地完成了項目后端的內容后需要部署到服務器上以供用戶訪問。因為后端使用的是Django框架,就在網上找了很多有關將Django項目部署到網站上的教程。由于本人在網絡這塊屬于小白,原理了解甚少,在一邊參照各種教程一邊實操的過程中碰了不少壁,總算是成功實現(xiàn)…因此寫這篇博客來記錄自己配置的過程,也希望能對正在學習Django的小伙伴提供一些幫助~
本文主要是參考了極客點兒的博客進行配置,是我在網上眾多教程中找到的最清晰的一篇,為原博主瘋狂點贊!?。?/p>

一、云服務器

1.1 購買云服務器

首先搭建一個網站需要一個遠程服務器來運行項目。阿里云有個飛天免費試用計劃,可以免費試用1核2G的云服務器ECS,試用期為3個月,個人用為僅用來學習網站搭建足矣。

django項目部署到ubuntu,django,服務器,python

試用(或購買)服務器后選擇操作系統(tǒng)等就可以開始使用。這里不建議選Windows系統(tǒng)。本人選擇的是Ubuntu20.04。不同版本的Ubuntu在配置上也有一些區(qū)別,這里建議選擇版本舊一些的如16.04,后面會詳細說明。

1.2 連接云服務器

在阿里云控制臺實例處可以看到自己購買的服務器,一般第一次連接是無法使用WorkBench或SSH登錄的,會提示服務器禁用了密碼登錄的方式。這是因為在服務器SSH配置文件 /etc/ssh/sshd_config中的 PasswordAuthentication 被設置為 no 。解決方法是通過VNC連接服務器后將上述項修改為 yes 。阿里云官方文檔中也提供了對該問題完整的解決步驟,這里就不再贅述。

django項目部署到ubuntu,django,服務器,python

如果提示 訪問公網IP地址需要在實例安全組白名單中增加Workbench的服務器白名單 ,則在控制臺的 安全組 -> 配置規(guī)則 -> 入方向 中增加22端口。

django項目部署到ubuntu,django,服務器,python

22端口是遠程連接端口,因此要通過SSH方式登錄服務器肯定需要這個端口開放。這里可以順便把80(http端口),3306(MySQL)也設置開放。

二、部署項目環(huán)境

連接好服務器后,我們需要開始在服務器部署項目需要的環(huán)境,安裝一些必要的包。以下是本項目中使用到工具和包。

Python 3.8.1
Django 4.2
Nginx 1.18.0 
uWSGI 2.0.21

這里解釋一下各個工具的用途。Django項目部署到服務器的方式有很多種,本項目是基于Django+Nginx+uWSGI的方式。這種方式的工作原理是將 Nginx 作為服務器最前端來接收 web 的所有請求,統(tǒng)一管理請求。Nginx 把所有靜態(tài)請求自己來處理,將所有非靜態(tài)請求通過 uWSGI 傳遞給 Django,由 Django 來進行處理,從而完成一次 web 請求。

2.1 安裝Python

?
打開終端,輸入以下指令下載Python 3.8.1安裝包,如果是其他版本則要按官方下載鏈接修改,不要選擇3.5以下的!??!

wget https://www.python.org/ftp/python/3.8.1/Python-3.8.3.tgz

然后新建一個安裝目錄:

sudo mkdir -p /usr/local/python3

解壓安裝包:

tar -zxvf Python-3.8.1.tgz

進入解壓后的目錄:

cd Python-3.8.1

配置安裝的目錄:

./configure --prefix=/usr/local/python3

編譯Python 3.8.1的代碼,并安裝:

sudo make install

由于Linux中自帶Python2.7,因此需要在終端建立軟連接將python3指向Python3.8。
建立軟連接運行的名稱:

sudo ln -s /usr/local/python3/bin/python3.8 /usr/local/bin/python38
sudo ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3

完成以上過程后在命令行輸入python3后有回顯>>>就表示安裝成功,進入Python環(huán)境了。

django項目部署到ubuntu,django,服務器,python

2.2 安裝Django

這個比較簡單,直接pip3 install就可以了。

pip3 install Django==4.0

2.3 安裝Nginx

使用apt之前可以先更新一下可用軟件包列表和已安裝的包

sudo apt update
sudo apt upgrade

然后install

sudo apt install nginx

安裝完之后可以在本地輸入你的服務器公網IP查看是否顯示Nginx歡迎頁,顯示的話則證明安裝成功。

2.3 安裝uWSGI

執(zhí)行pip install安裝uWSGI

pip3 install uwsgi

安裝完后可以測試一下,先創(chuàng)建一個test.py

#test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"] # python3
    #return ["Hello World"] # python2

然后在test.py所在目錄下運行:

uwsgi --http :8000 --wsgi-file test.py

運行結果跟下圖一樣就是正常的啦。
django項目部署到ubuntu,django,服務器,python

三、配置uWSGI與Django,Nginx之間的通信

3.1 上傳本地Django項目到服務器

首先需要將本地的項目上傳到阿里云服務器上,這里提供兩種方式作為參考:一種是將自己的Django項目上傳到GitHub后再在服務器上git clone下來;另一種是通過ftp軟件將本地項目傳輸給服務器。題主原本使用第一種方式但后來發(fā)現(xiàn)git倉庫不能上傳太大的文件(T~T),故改用第二種。
這里我使用的是FileZilla,連接后上傳項目文件即可。

django項目部署到ubuntu,django,服務器,python

3.2 配置uWSGI

上傳項目文件后,cd 進入項目文件夾的根目錄創(chuàng)建uwsgi.ini文件。

cd myproject #我的Django項目文件
vi uwsgi.ini

配置uwsgi.ini內容如下:

[uwsgi]

socket          = :8888 
chdir           = /root/myroject
module          = myproject.wsgi
master          = true
processes       = 4
vacuum          = true

socket=:8888 表示指定項目的端口號為8888,chdir為指定的項目目錄。
這一步在網上很多教程中,wsgi.py文件的位置都跟我不一樣,不知道是不是因為Django版本的問題。我的項目文件中,wsgi.py文件是在同名子目錄myproject下的,所以module處應為myproject.wsgi。這里show一下我的項目文件結構,有一樣問題的配置文件可以參考這么寫。

myproject/
├── manage.py
├── myproject
│   ├── asgi.py
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-310.pyc
│   │   └── ...
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── uwsgi.ini
└── ...

之后就是運行uwsgi --ini uwsgi.ini讀取uwsgi.ini啟動項目。正常運行結果如下:
django項目部署到ubuntu,django,服務器,python

如果報以下錯誤則需要檢查以下該端口是否已被占用,可以執(zhí)行uwsgi --stop uwsgi.pidpkill -f uwsgi -9關閉進程。
django項目部署到ubuntu,django,服務器,python
然后我們可以將uWSGI配置為開機自啟。網上一些教程是在/etc/rc.local下添加開機命令,但Ubuntu在20.04版本已經取消了rc.local文件,所以這里提供另一種方法設置開機自啟動

首先設置rc-local.service

sudo vi /etc/systemd/system/rc-local.service

內容如下:

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

然后激活rc-local.service

sudo systemctl enable rc-local.service

創(chuàng)建rc.local文件

sudo vi /etc/rc.local

內容如下:

#!/bin/sh -e
# 
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# 開機啟動的命令
uwsgi --ini /root/myproject/uwsgi.ini & # 開機自動啟動項目,并在后臺運行

exit 0

保存退出后,給予腳本執(zhí)行權限。

sudo chmod +x /etc/rc.local

這樣開機自啟動就設置好了。

3.3 配置Nginx

首先需要查看一下nginx配置文件,Ubuntu20.04的nginx配置文件為/etc/nginx/sites-available下的default,有些版本的Linux系統(tǒng)下配置文件為/etc/nginx/nginx.conf
修改配置文件運行:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak #這里先對原來的配置文件進行備份
sudo vi /etc/nginx/sites-available/default

在文件后面添加這段:

server {

    listen          80;
    server_name     xx.xxx.xxx.xx #有域名填域名,沒有就寫自己的公網IP
    charset         UTF-8;
    access_log      /var/log/nginx/myweb_access.log;
    error_log       /var/log/nginx/myweb_error.log;

    client_max_body_size 800M;

    location / {

        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8888; #這里的端口號要與uwsgi.ini中填寫的一樣
        uwsgi_read_timeout 2;
    }

    location /static {

        expires 30d;
        autoindex on;
        add_header Cache-Control private;
        alias myproject/static/;
    }
}

這里建議直接復制粘貼進去修改,因為這個配置文件對格式檢查比較嚴格。
配置完后重新啟動Nginx:

sudo /etc/init.d/nginx restart

現(xiàn)在在自己的主機或其他設備上的瀏覽器輸入服務器的IP:端口號,就能正常訪問自己的項目了。

總結

這兩天在完成項目部署的過程中確實是碰了很多壁,加上原先對網絡通信這塊確實不是很了解,查閱了各種資料后對那些配置文件的內容等還是一頭霧水,不懂得背后的原理,報錯也不知道從何解決。好在最后還是一點一點的搞定了。希望我的這篇記錄能夠為同樣正在學習Django的朋友提供一些些幫助吧!文章來源地址http://www.zghlxwxcb.cn/news/detail-777783.html

到了這里,關于將本地Django項目部署到服務器上(Ubuntu20.04)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Langchain-Chatchat-Ubuntu服務器本地安裝部署筆記

    Langchain-Chatchat-Ubuntu服務器本地安裝部署筆記

    ?Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 與 ChatGLM 等語言模型的本地知識庫問答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain。 ? ? ? ? 開源網址:https://github.com/chatchat-space/Langchain-Chatchat ?? ? ? ? 因為這是自己畢設項目所需

    2024年04月08日
    瀏覽(24)
  • Docker 部署本地爬蟲項目到服務器

    Docker 部署本地爬蟲項目到服務器

    筆記:一直想寫一篇博客的,那就趁著周末閑暇時光記錄一下。 目錄 一、前提準備 二、Docker部署爬蟲示例 整體梳理 1、打包構建本地項目鏡像 2、在 hub 網站上 創(chuàng)建一個倉庫。 3、將本地鏡像與hub上的倉庫打上標簽 4、確保已登錄 Dockerhub 賬號 5、推送鏡像到 Dockerhub 倉庫中

    2024年02月03日
    瀏覽(24)
  • Windows服務器,通過Nginx部署VUE+Django前后端分離項目

    Windows服務器,通過Nginx部署VUE+Django前后端分離項目

    基本說明 安裝 Nginx 部署 VUE 前端 部署 Django 后端 Django admin 靜態(tài)文件(CSS,JS等)丟失的問題 總結 本文介紹了在 windows 服務器下,通過 Nginx 部署 VUE + Django 前后端分離項目。本項目前端運行在 80 端口,服務器端運行在 8000 端口。因此本項目使用 Django 的 runserver 命令進行部署

    2024年02月05日
    瀏覽(31)
  • 如何一鍵部署本地Java項目到服務器上

    如何一鍵部署本地Java項目到服務器上

    我開發(fā)了一個Java代碼,現(xiàn)在想部署到服務器上,當然可以使用Jenkins部署,但是Jenkins配置和維護成本比較高,所以我今天分享的是輕量級的一鍵部署腳本 演示:本地Window的Java代碼 - Vmware虛擬機Centos7上 如果你的項目結構不同,可以根據(jù)項目結構自行調整 1、對項目進行Maven編

    2024年01月20日
    瀏覽(23)
  • 如何用個人電腦搭建一臺本地服務器,并部署項目到服務器詳細教程

    如何用個人電腦搭建一臺本地服務器,并部署項目到服務器詳細教程

    服務器是一種高性能計算機,作為網絡的節(jié)點,它存儲、處理網絡上80%的數(shù)據(jù)、信息,因此也被稱為網絡的靈魂。與普通計算機相比,服務器具有高速CPU運算能力、長時間可靠運行、強大I/O外部數(shù)據(jù)吞吐能力以及更好的擴展性。 服務器的主要用途廣泛,包括: 網站托管 :服

    2024年04月29日
    瀏覽(126)
  • 使用IDEA部署Web項目到本地的Tomcat服務器

    使用IDEA部署Web項目到本地的Tomcat服務器

    1.1 Tomcat下載與安裝啟動 下載地址:http://tomcat.apache.org/ (左側Download選擇下載版本) 1.1.1 安裝: 1、下載好了解壓到一個沒有特殊符號的目錄中(一般純英文即可) 2、進入到解壓的目錄下找到binstartup.bat雙擊啟動即可 tomcat需要配置JAVA_HOME環(huán)境變量,不要把bin目錄也配置到JAVA

    2024年02月13日
    瀏覽(23)
  • vue項目本地開發(fā)完成后部署到服務器后報404

    vue項目本地開發(fā)完成后部署到服務器后報404

    前后端分離開發(fā)模式下,前后端是獨立布署的,前端只需要將最后的構建物上傳至目標服務器的 web 容器指定的靜態(tài)目錄下即可 我們知道 vue 項目在構建后,是生成一系列的靜態(tài)文件 常規(guī)布署我們只需要將這個目錄上傳至目標服務器即可 讓 web 容器跑起來,以 nginx 為例 配置

    2024年02月05日
    瀏覽(17)
  • nginx部署本地項目如何讓異地公網訪問?服務器端口映射配置!

    nginx部署本地項目如何讓異地公網訪問?服務器端口映射配置!

    接觸過IIS或apache的小伙伴們, 對 nginx 是比較容易理解的, nginx有點類似,又有所差異,在選擇使用時根據(jù)自己本地應用場景來部署使用即可。通過一些對比可能會更加清楚了解: 1 . nginx是輕量級,比apache占用更少的內存以及資源 2 . apache對php支持較簡單,apache組件比nginx多

    2024年02月16日
    瀏覽(102)
  • JavaWeb項目部署到服務器并連接本地數(shù)據(jù)庫(超詳細!)

    JavaWeb項目部署到服務器并連接本地數(shù)據(jù)庫(超詳細!)

    目錄 一、下載XShell、Xftp工具 二 、建立服務器連接 三、服務器環(huán)境配置 四、打包web項目傳輸入服務器 五、服務器Web項目連接本地數(shù)據(jù)庫 個人博客歡迎訪問 --- 猿客棧 在XShell官網下載兩個工具,用來操作服務器的Linux系統(tǒng) 輸入服務器的主機名,驗證用戶和密碼,默認用戶名

    2024年02月05日
    瀏覽(27)
  • 通過寶塔輔助部署本地Python爬蟲項目到阿里云輕量服務器

    通過寶塔輔助部署本地Python爬蟲項目到阿里云輕量服務器

    筆記:最近想把本地的一套爬蟲項目給搞到服務器上跑跑。 可在本地壓縮成zip,手動將壓縮包上傳到寶塔文件夾,最終要將它解壓出來,放到下面圖片的路徑下。 ![在這里插入圖片描述](https://img-blog.csdnimg.cn/35683919ba694d5485ad9b5197549105.png 對于添加python項目這里就不再贅述,詳

    2024年02月09日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包