Windows下部署django 4.0.5

2022/08/3021:38:22Windows下部署django 4.0.5已关闭评论

1.环境说明

使用apache 2.4模块中的mod_proxy_uwsgi作为跟django通讯的模块。

XAMPP:v3.3.0
Python:3.8
Django:4.0.5
MySQL:5.7.27
OS:Windows Server 2012
Apache:2.4.x

项目代码存放路径:C:\mysite

2、配置python环境

使用virtualenv安装虚拟环境这里就不多说了,自行百度一下。

安装mod_wsgi环境,访问:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

安装一下:

pip install C:\mod_wsgi-4.9.2-cp38-cp38-win_amd64.whl
c:\mysite>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"

以上配置待会将拷贝到httpd-vhost.conf文件中去。

3.配置Apache

将mod_proxy_uwsgi模块放出来,去掉前面的#

#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

配置httpd-vhost.conf:

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

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"

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
Listen 80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#
##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
    ##ServerName dummy-host.example.com
    ##ServerAlias www.dummy-host.example.com
    ##ErrorLog "logs/dummy-host.example.com-error.log"
    ##CustomLog "logs/dummy-host.example.com-access.log" common
##</VirtualHost>

##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host2.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host2.example.com"
    ##ServerName dummy-host2.example.com
    ##ErrorLog "logs/dummy-host2.example.com-error.log"
    ##CustomLog "logs/dummy-host2.example.com-access.log" common
##</VirtualHost>


#设置django工程中的wsgi路径
WSGIScriptAlias / C:\mysite\mysite\wsgi.py

#设置django工程路径
WSGIPythonPath C:\mysite

#设置wsgi的文件夹路径
<Directory C:\mysite\mysite>
   <Files wsgi.py>
       Require all granted
    </Files>
</Directory>

#设置静态文件路径
Alias /static C:\mysite\static
<Directory C:\mysite\static>
   AllowOverride None
   Options None
   Require all granted
</Directory>

最后重启下apache服务即可完成!以下即访问效果:

  • 微信扫码赞助
  • weinxin
  • 支付宝赞助
  • weinxin