Windows下使用Apache和mod_wsgi部署django專案

星空28發表於2024-07-28

一、安裝Python
確定好所需要的python版本。

二、安裝Apache
apache下載地址:http://httpd.apache.org/docs/current/platform/windows.html#down
下載完成後做如下操作
將apache解壓後直接複製到你想安裝的路徑下

1、更改httpd.conf檔案,找到如下程式碼並更改路徑
Define SRVROOT "E:/Apache24"
ServerRoot "${SRVROOT}"

找到

Listen 12.34.56.78:80在下面新增監聽埠號

Listen 8081
2、以管理員身份執行cmd(右鍵點選cmd,看到管理員身份執行),進入E:\Apache24\bin目錄下,輸入命令

    > httpd -k install             -->    安裝

在安裝完成之後,輸入httpd -k install後就可以啟動apache服務了,然後雙擊bin目錄下的ApacheMonitor.exe就可以看到apache的狀態了,可以手動控制apache服務,也可以透過cmd使用以下其他命令操作
> httpd -k start --> 啟動

    > httpd -k stop             -->    停止

    > httpd -k uninstall        -->    解除安裝

3、apache服務啟動之後,在瀏覽器輸入localhost:8081,8081是之前在配置檔案裡設定的埠號,顯示It works!表示訪問成功。

三、安裝Visual Studio

這一步最好是在下載啟動apache之前,如果上步不成功,就先進行這一步,這一步是必須的,如果沒有這個工具,後面的mod_wsgi也安不上,會提示沒有wheels。假如不確定自己有沒有這個工具,也可以直接跳過這一步,等後面報錯再回來安裝,在下載apache的資料夾可以看到readme文字文件,開啟後也可看到如下的要求:

直接開啟官方網站Microsoft C++ 生成工具 - Visual Studio直接下載安裝

如果安裝時報錯提示沒有Microsoft .NET Framework,根據提示的版本去官網找到並下載,這裡我安裝的是4.8版本,按需安裝:適用於 Windows 的 Microsoft .NET Framework 4.8 離線安裝程式 - Microsoft 支援

安裝Visual Studio時注意勾選:左上角的C++桌面開發應用(大概是六個) 並在右下角擴選一個c++ATL

四、安裝mod_wsgi

mod_wsgi的安裝必須在同一個終端下進行,如果是cmd,則全部在同一個cmd中進行;如果是pycharm的終端,則全部在pycharm的終端下進行。
cmd輸入:
set MOD_WSGI_APACHE_ROOTDIR=E:/Apache24
pip install mod_wsgi
安裝完成後cmd接著輸入
mod_wsgi-express module-config
將輸出的3行程式碼到apache的httpd.conf配置檔案中,就寫到剛剛的埠號下就行

在專案檔案下編寫wsgi檔案
wsgi檔案可以透過mod_wsgi模組把django專案和apache服務連線起來:
import sys
sys.path.insert(0, "E:\pythonProject\flaskProject") # 新增專案路徑到python直譯器的搜尋路徑中
from app import app as application # 這裡必須是application

新增wsgi檔案的路徑到apache服務的httpd.conf檔案中:

Listen 8081

LoadFile "C:/Users/jackc/AppData/Local/Programs/Python/Python38/python38.dll"
LoadModule wsgi_module "d:/work/frontend/housemarket/housemarketserver/venv/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
WSGIPythonHome "d:/work/frontend/housemarket/housemarketserver/venv"

ServerName 121...** # 這裡寫入伺服器ip地址

<VirtualHost *>
WSGIScriptAlias / E:\pythonProject\flaskProject\test.wsgi
<Directory 'E:\pythonProject\flaskProject'>
Require all granted
Require host ip


訪問地址:http://localhost:8081/

五、新增入站規則

點開控制皮膚-->找到防火牆--> 高階設定-->新建入站規則-->新增埠18081以及8081。

如果是雲伺服器,還需要在控制檯上找到例項的安全組,新增以上入站埠。

相關文章