顯示具有 Setup Python App 標籤的文章。 顯示所有文章
顯示具有 Setup Python App 標籤的文章。 顯示所有文章

2019年12月18日 星期三

在虛擬主機 cPanel 上部署 Django 專案


虛擬主機稱為 Shared Web Hosting,

又稱為共享主機,

顧名思義,

其實就是將實體電腦中的資源分割成許多份,

讓多人一起共用在實體電腦上的資源,

共享主機最顯著的缺點除了資源為共享的以外,

在控制權上也有著諸多限制,

不過這不再今天的探討範圍,

今天要來教大家:

在虛擬主機 cPanel 上部署 Django 專案

雖然虛擬主機有諸多限制,

隨著技術的進步,

過去共享主機上沒有的功能也逐步開放出來,

首先在 cPanel 找到 Setup Python App 點選進入,


新增一個 Application ,

設定好 Application root ( 實體路徑 ) 與 Application URL
( URL 可先設定好子域名就可從下拉式選單選擇  )

此時登入設定好的 Application URL 應該可看到提示成功的內容。


基本上 cPanel 部分的設定就到此而已,

接著就需要以 SSH 登入伺服器,


透過 SSH 登入伺服器後,

當然是馬上開啟虛擬環境了,

通常會在新建 Python Application 時候,

系統會將命令秀在最上方,



接著從 cPanel 的檔案管理員找到 passenger_wsgi.py 檔案,

( 此檔案會在 Application root 資料夾中 )


將 application 內容改為 Django 專案名稱,
( 預設為提示成功的畫面 )

此處為 cms 故改為如底下範例。


其餘就是依照 Django 部署的方式將專案上傳到 Application root 中,

重點不外乎就是透過 pip install 將必要元件加入虛擬環境中,

設定好專案的 wsgi.py 檔案還有設定 ALLOW HOST 等等,

詳細步驟可參照之前提到的文章。

底下為 wsgi.py 設定範例 ( 範例專案名稱為 cms ):


import os
import sys
from os.path import join,dirname,abspath


PROJECT_DIR = dirname(dirname(abspath(__file__)))

sys.path.insert(0, PROJECT_DIR)
sys.path.insert(0, '/此處填寫虛擬環境的路徑/3.7/lib/python3.7/site-packages/')


from django.core.wsgi import get_wsgi_application

os.environ['DJANGO_SETTINGS_MODULE'] = 'cms.settings'
application = get_wsgi_application()