部署 Django 應用程式共享託管。

WBOY
發布: 2024-08-25 06:02:09
原創
368 人瀏覽過

描述

這次,我將分享如何將 django 應用程式部署到共享主機。為了讓事情變得更容易,我使用 DirectAdmin 面板。如果你使用cpanel或其他面板,我認為不會有太大不同。確保您已經擁有網域並在任何地方購買共享託管服務,我不會限制您使用某些服務。

專案中使用的requirements版本

  • python 版本 3.9.18
  • Django 版本 4.2

步驟

確保共享託管服務正常運作。

在進入部署方法之前,請確保共享託管服務正在正常運作。

Deploy Django App Shared Hosting.
這次在實踐中,我將使用網域名稱artinetix.cloud(調整為您的網域),以確保服務正常運行,如果我們造訪該網域URL,將會出現如下頁面。

Deploy Django App Shared Hosting.

建立子網域

建立子網域來區分一個應用程式 URL 和另一個應用程式 URL,一個網域可以用於多個子網域。例如,如果使用的網域是 artinetix.cloud,那麼將建立的子網域將類似於 django_tutor.artinetix.cloud。您可以在互聯網資源上閱讀有關子域的更多信息,以更好地了解子域。

    開啟儀表板頁面
  • 尋找子網域管理
  • 菜單

Deploy Django App Shared Hosting.

    確保您已選擇將用作基礎的域(紅色圓圈)並添加新的子域(藍色圓圈)

Deploy Django App Shared Hosting.

    只需使用預設的文檔根目錄,我將建立一個名為 django-tutor 的子網域

Deploy Django App Shared Hosting.

    點擊新增子域名,如果子域名建立成功就會出現在表格中。

Deploy Django App Shared Hosting.

    嘗試存取子網域位址,是否可以存取並顯示如下頁面?

Deploy Django App Shared Hosting.

不用擔心,因為我們還沒有設定SSL,所以我們可以使用https協議訪問,而不僅僅是http。您可以點擊「前進」繼續造訪該位址,看看該網址是否有效。

Deploy Django App Shared Hosting.

上圖表示該 URL 現在可以存取。下一步是 SSL 設置,以便網路更安全,免受外部攻擊。

SSL 設定

    開啟ssl憑證頁面。

Deploy Django App Shared Hosting.

    開啟選單產生新的SSL。

Deploy Django App Shared Hosting.

    向下滾動,你會發現你的URL位址(不帶www和帶wwww的都有)沒有被勾選。檢查將產生 SSL 的 URL 位址(紅色圓圈)並確保也選取強制 SSL 重定向(藍色圓圈),然後按一下「儲存」。

Deploy Django App Shared Hosting.

網頁頂部會出現載入動畫線,表示進程正在運作。如果流程成功,將出現如下通知。

Deploy Django App Shared Hosting.

藍色圈起來的是SSL產生的子網域(有www和沒有www)。

    刷新頁面後,恭喜!現在您的子網域可以更安全地存取。

Deploy Django App Shared Hosting.

準備 Django 應用程式

我不會重點介紹如何從頭開始設定 django環境以縮短文章。準備一個已經開發完成並且可以在本地環境.

正常運作的django app

其實這次我會先使用預設的django(仍處於初始設定產生)使用django 4.2
Deploy Django App Shared Hosting.
當你運行django項目,出現如上圖所示的頁面時,表示django運作正常。

  • 要使用的文件 並非所有檔案都必須儲存在伺服器上,請根據您的專案進行調整。這次我只使用了 github 上的 .gitignore python 模板。

文章中使用的項目的文件樹(從某種意義上說,該文件將發送到伺服器,而不是已包含在 .gitignore 列表中的文件)如下。

雷伊

建立一個包含django專案文件的 zip 文件,然後將它們放在伺服器上。

  • 在面板上管理文件 進入檔案總管選單

Deploy Django App Shared Hosting.

導覽至網域名稱資料夾 > (您的子網域的 URL)> public html,在public html資料夾中包含index.html檔案。該檔案是我們之前建立子網域時顯示的檔案。

Deploy Django App Shared Hosting.

刪除cgi-bin資料夾和index.html文件,上傳我們之前創建的zip項目,不要忘記解壓縮它。現在,本節中的步驟已經足夠了,讓我們繼續創建 django 環境。

    創建python應用環境 在儀表板面板中,按一下
  • setup python app

Deploy Django App Shared Hosting.

選擇create python app並輸入如下配置,對於應用程式根目錄可以調整,因為在放置檔案時我們已將python應用程式放置在public_html資料夾中,因此配置如下圖所示。如果適當的話,點擊

create在伺服器上建立環境

Deploy Django App Shared Hosting.成功
設定python app並且造訪上面的URL後,只會顯示python it Works。出現這種情況是因為我們還沒有導入django項目,而且環境沒有安裝django。

    在環境中安裝django 點擊命令文字複製我用紅色圈起來的命令。

Deploy Django App Shared Hosting.

進入終端

Deploy Django App Shared Hosting.

在終端中,透過右鍵點擊並貼上來貼上先前的程式碼。

如果成功,請按照以下步驟操作

    輸入指令 pip list 查看已經安裝了哪些套件。
  1. 使用ls指令檢查我們是否位於正確的
  2. 目錄,確保requirements.txt檔案在那裡。
  3. 使用requirements.txt檔案安裝所有套件,使用指令pip install -rrequirements.txt

環境上安裝django已經完成,我們將進入檔案總管編輯passenger_wsgi檔案。

    編輯 django Passenger_wsgi 文件 透過編輯passenger_wsgi檔案從django專案名稱資料夾(該資料夾包含settings.py檔案)匯入django應用程式,該檔案與requirements.txt位於同一目錄中,換句話說,我們的django應用程式的根目錄。
乘客.py


雷伊

注意:django_tutor 調整為對應 django 應用程式的專案名稱

  • Edit fail settings.py Konfigurasi fail tetapan semasapengeluaranberbeza daripada semasa ia masih dalam peringkatpembangunan, edit fail settings.py (terletak dalam folder nama projek) menjadi seperti berikut.
  1. Tukar DEBUG = Benar kepada DEBUG = Salah
  2. Benarkan hos mengakses apl, ALLOWED_HOSTS = [] menjadi ALLOWED_HOSTS = ['django-tutor.artinetix.cloud', 'www.django-tutor.artinetix.cloud'] mengikut nama domain yang digunakan.
  3. Di penghujung fail, tambah baris kod berikut untuk menyalin fail statik (css, js, imej, dll) STATIC_ROOT = BASE_DIR / 'public'

Mulakan semula apl django dengan pergi ke panel papan pemuka > sediakan apl python > klik restart dalam ruangan tindakan.

Deploy Django App Shared Hosting.

Cuba akses URL, adakah halaman kelihatan lebih kurang seperti ini?

Deploy Django App Shared Hosting.

Cuba akses bahagian pentadbir dengan menambah pentadbir di hujung URL pada nama domain/pentadbir kemudian lebih kurang satu halaman akan dipaparkan seperti di bawah.

Deploy Django App Shared Hosting.

Kalau perhatikan, nampak macam gurauan. Ini kerana CSS, JS dan fail statik lain belum disalin ke projek Django, untuk melakukan ini, anda boleh memberi perhatian kepada langkah berikut.

  1. Pergi ke halaman persediaan aplikasi python.
  2. Klik menu edit pada apl actionpython yang dikehendaki.
  3. Salin arahan untuk memasuki persekitaran.Deploy Django App Shared Hosting.
  4. Masukkan halaman terminal dan tampal arahan.
  5. Jika anda berjaya memasuki persekitaran, jalankan perintah python manage.py collectstatic untuk mengalihkan fail statik seperti CSS dan JS ke folder mengikut laluan STATIC_ROOT dalam settings.py.

Apabila anda berjaya melaksanakan langkah-langkah di atas, dalam folder akar apl harus ada folder awam yang mengandungi fail CSS dan JS (fail statik yang digunakan dalam Django). Sila cuba akses url pentadbir dalam apl django dengan menambahkan pentadbir di belakang url (url/admin). Jika paparan masih seperti di bawah dan apabila kita menyemak konsol terdapat ralat jenis MIME tidak boleh dilaksanakan. Kemudian anda perlu menambah pakej whitenoise pada aplikasi Django. Anda boleh rujuk URL Whitenoise doc berikut Jangan lupa untuk sentiasa mulakan semula setiap kali anda membuat perubahan kod pada pelayan :).

Deploy Django App Shared Hosting.
Ralat jenis MIME.
Deploy Django App Shared Hosting.

Begitulah cara menggunakan aplikasi django padapenghosan kongsimenggunakan DirectAdmin, sebenarnya masih banyak yang perlu dilakukan selain menggunakan, iaitu menyediakan pangkalan data dan menambah pembolehubah persekitaran. Anda juga perlu ambil perhatian, kaedah ini adalah kaedah manual yang biasa saya lakukan, nampak rumit. Untuk memudahkan proses penempatan, anda biasanya boleh menggunakan ci & cd melalui tindakan github. Cukuplah dari saya, jika ada apa-apa yang ingin disampaikan sama ada cadangan atau kritikan yang membina, sila komen di ruangan komen. Itu sahaja, terima kasih.

以上是部署 Django 應用程式共享託管。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!