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()




沒有留言: