Django 部署在Windows Apache上


 文章對應的B站視頻:https://www.bilibili.com/video/BV1Tu41127Ca/

Django系列文章對應的目錄:https://www.cnblogs.com/emanlee/p/15860241.html

 

Django 部署(發布)在Windows Apache上

 

安裝 apache

                                                            

Apache 官方網站: http://httpd.apache.org/

https://www.apachehaus.com/cgi-bin/download.plx

 

 

 

 

 

 

 

 

 

 

在Apache官方網站中的 download 界面中找到 Files for Microsoft Windows

 

下載后解壓縮文件, 將其中的 Apache24文件夾 放到你想放置的目錄下, 這里我選擇放在  D:\software\  目錄下.

解壓 D:\software\httpd-2.4.52-o111m-x64-vc15

修改 D:\software\httpd-2.4.52-o111m-x64-vc15\Apache24\conf\httpd.conf

Apache24/conf/httpd.conf 文件:

Define SRVROOT Define SRVROOT "D:\software\httpd-2.4.52-o111m-x64-vc15\Apache24"    #將全局變量改成自己 Apache24 的位置
......
Listen 127.0.0.1:80    #修改ip地址和端口號
......
ServerName 127.0.0.1:80    #修改ip地址和端口號
......

 

主要就是路徑和端口號的修改, 如果你在啟動 apache 的 httpd.exe 程序后打不開 http://127.0.0.1 , 請檢查這些配置.

啟動 D:\software\httpd-2.4.52-o111m-x64-vc15\Apache24\bin\httpd.exe 程序

 

如出現以下錯誤,443端口被占用,修改conf目錄中的extra目錄下的兩個文件,將其443端口修改為442或444均可

D:\software\httpd-2.4.52-o111m-x64-vc15\Apache24\bin>httpd.exe (OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted.  : AH00072: make_sock: could not bind to address [::]:443 (OS 10048)Only one usage of each socket address (protocol/network address/port) is normally permitted.  : AH00072: make_sock: could not bind to address 0.0.0.0:443 AH00451: no listening sockets available, shutting down AH00015: Unable to open logs

443端口被占用,修改conf目錄中的extra目錄下的兩個文件,將其443端口修改為442或444均可

D:\software\httpd-2.4.52-o111m-x64-vc15\Apache24\conf\extra

httpd-ahssl.conf

httpd-ssl.conf

 


通過瀏覽器訪問: http://127.0.0.1/

 

 



 

 

 

下載安裝mod_wsgi

mod_wsgi 是一個 Apache 模塊, 它可以管理任何 Python WSGI 應用, 包括 Django. Django 支持所有支持 mod_wsgi 的 Apache 版本.

下載地址: http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

這里配置   python3.8 對應版本為:  mod_wsgi-4.9.0-cp38-cp38-win_amd64.whl , 把該文件放到 python 3.8 的安裝目錄的 scripts 下面。

下載后, 在 cmd界面 用  pip install mod_wsgi-4.9.0-cp38-cp38-win_amd64.whl  安裝該模塊.

 
安裝后在 cmd 界面 輸入  mod_wsgi-express module-config  命令, 顯示該模塊的安裝信息.

C:\Python38\Scripts>pip install mod_wsgi-4.9.0-cp38-cp38-win_amd64.whl
Processing c:\python38\scripts\mod_wsgi-4.9.0-cp38-cp38-win_amd64.whl
Installing collected packages: mod-wsgi
Successfully installed mod-wsgi-4.9.0

C:\Python38\Scripts>mod_wsgi-express module-config
LoadFile "c:/python38/python38.dll"
LoadModule wsgi_module "c:/python38/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
WSGIPythonHome "c:/python38"


復制下來備用.

 

 

部署Django與Apache

再次打 Apache24/conf/httpd.conf 文件, 在文件的末尾加上以下代碼:

#添加 mod_wsgi 模塊, 即上文備用的信息.
LoadFile "c:/python38/python38.dll"
LoadModule wsgi_module "c:/python38/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
WSGIPythonHome "c:/python38"
 
#指定項目的wsgi.py配置文件路徑,這個py文件是在你的Django項目中  
WSGIScriptAlias / D:\temp-test\djangodemo\app02\app02\wsgi.py
 
#指定項目目錄, 即你的Django項目路徑
WSGIPythonPath  D:\temp-test\djangodemo\app02
<Directory D:\temp-test\djangodemo\app02\app02>  
<Files wsgi.py>  
    Require all granted  
</Files>  
</Directory>  
 
#項目靜態文件地址, 即Django項目中靜態文件的路徑  
Alias /static D:\temp-test\djangodemo\app02\app02\static
<Directory D:\temp-test\djangodemo\app02\app02\static>  
    AllowOverride None  
    Options None  
    Require all granted  
</Directory>  
 
#項目media地址, 上傳圖片等文件夾的路徑  
Alias /media D:\temp-test\djangodemo\app02\app02\media
<Directory D:\temp-test\djangodemo\app02\app02\media>  
    AllowOverride None  
    Options None  
    Require all granted  
</Directory>  

 

 

然后打開Django項目內的 D:\temp-test\djangodemo\app02\app02\settings.py 文件進行配置:

DEBUG = False
 
TEMPLATE_DEBUG = False
 
ALLOWED_HOSTS = ['*']

最后再次啟動 Apache24\bin\httpd.exe 程序, 通過瀏覽器訪問: http://127.0.0.1/ 即可看到你的 django項目了.

如果出錯, 可以進入 Apache24\logs\ 文件夾中查看錯誤信息並設法解決.

 

 

REF

 https://blog.csdn.net/sinat_41292836/article/details/103772521

 https://www.cnblogs.com/hemomo/p/12339902.html

 https://www.jb51.net/article/197234.htm

 https://www.cnblogs.com/feifeifeisir/p/13792353.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM