当前位置: 首页 > 工具软件 > mod_myvhost > 使用案例 >

windows apache mod_wsgi django virtualenv 部署项目

白越
2023-12-01

一、 配置Apache服务器 (https://www.apachehaus.com/cgi-bin/download.plx)

1. 解压 Apache(httpd-2.4.52-o111m-x64-vc15.zip) 压缩包

2. 打开 conf 文件夹内的 httpd.conf 文件,进行配置

    2.1 配置服务器所在得路径 (Apache解压路径)

        Define SRVROOT "D:/apache/Apache24"

    2.2 设置路由及端口

        Listen 8181

    2.3 设置服务名

        ServerName 127.0.0.1:8181

3. 打开 conf/extra 文件夹内 httpd-ahssl.conf和httpd-ssl.conf 文件夹

    3.1 将 443 改为 442

4. 测试 Apache 服务器配置是否成功

    4.1 启动方法 1
        运行 安装目录 /bin/httpd.exe 浏览器访问 127.0.0.1:8181 出现 Apache 默认界面表示配置成功
    4.2 启动方法 2
        cmd 到 bin 目录,执行 httpd.exe -k install 命令
        执行 ApacheMonitor.exe 命令,然后点击 start
        浏览器访问 127.0.0.1:8181 出现 Apache 默认界面表示配置成功

二、安装 python

1. 安装 python

2. 配置 python 环境变量

    此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量
    编辑 path 将 python 安装目录填入 (一般是 安装 python 时自动配置)
    新建 变量名:PYTHONHOME 变量值:C:\User\AppData\Local\Programs\Python\Python38 (本机 python 的安装路径)

3. 配置 pip 环境变量

    2.1 pip所在目录
        python 安装目录 中 Scripts文件夹 
    2.2 此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量 -> Path -> 编辑 -> 新建 -> 填入pip所在目录 -> 确定
    2.3 验证
        pip -help

三、安装、启动虚拟环境

1. 安装虚拟环境

       pip install virtualenv

2. 创建虚拟环境

       virtualenv venv0225 (文件夹名称)

3. 进入此虚拟环境

       cd venv0225\Scripts
       activate (启动虚拟环境,退出命令:deactivate)

4. 目录结构:

    --Apache24 (apache安装目录)
      --...
      --conf
        --httpd.conf
    --djangoweb (存放项目 虚拟环境 mod_wsgi安装包得目录)
      --venv0225 (创建的虚拟环境)
      --mod_wsgi (mod_wsgi安装包所在目录)

四、安装 mod_wsgi (虚拟环境中) (https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi)

1. cd 到 mod_wsgi 文件夹 安装对应版本得mod_wsgi

       pip install mod_wsgi-4.9.0-cp38-cp38-win_amd64.whl  (cp38: python版本3.8, win_amd64: 64位系统, whl文件在上述网址中下载)

2. 查看模块配置信息

       mod_wsgi-express module-config
    记录输出:
       LoadFile "c:/users/26975/appdata/local/programs/python/python38/python38.dll"
       LoadModule wsgi_module "D:/apache/djangoweb/venv0225/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
       WSGIPythonHome "D:/apache/djangoweb/venv0225"

五、配置Django项目到Apache

1. 项目目录

    --Apache24 (apache安装目录)
      --......
      --conf
        --httpd.conf
    --djangoweb (存放项目 虚拟环境 mod_wsgi安装包得目录) 
      --venv0225 (创建的虚拟环境)
      --mod_wsgi (mod_wsgi安装包所在目录)
      --NaturalEnvironmentPlatform (django项目目录)
        --......
        --NaturalEnvironmentPlatform
          --......
          --wsgi.py
        --app
        --manage.py
        --requirements.txt

2. 添加 httpd.conf 配置文件

    将一下两条注释解开
       LoadModule rewrite_module modules/mod_rewrite.so
       LoadModule vhost_alias_module modules/mod_vhost_alias.so
    在 httpd.conf 末尾处添加
       # --------------Django项目部署---------------
       # 添加 mod_wsgi.so 模块
       LoadFile "c:/users/26975/appdata/local/programs/python/python38/python38.dll"
       LoadModule wsgi_module "D:/apache/djangoweb/venv0225/lib/site-packages/mod_wsgi/server/mod_wsgi.cp38-win_amd64.pyd"
       WSGIPythonHome "D:/apache/djangoweb/venv0225"
       
       # WSGIPythonPath要添加虚拟环境的site-packages
       WSGIPythonPath "D:/apache/djangoweb/venv0225/Lib/site-packages;D:/apache/djangoweb/NaturalEnvironmentPlatform"

       # wsgi文件地址
       WSGIScriptAlias / D:\apache\djangoweb\NaturalEnvironmentPlatform\NaturalEnvironmentPlatform\wsgi.py

       # wsgi文件权限
       <Directory D:\apache\djangoweb\NaturalEnvironmentPlatform\NaturalEnvironmentPlatform>  
           <Files wsgi.py>
               Require all granted  
           </Files>
       </Directory> 

       # static目录权限
       Alias /static D:\apache\djangoweb\NaturalEnvironmentPlatform\static
       <Directory D:\apache\djangoweb\NaturalEnvironmentPlatform\static>   
           Require all granted  
       </Directory> 

       # media目录权限
       Alias /media D:\apache\djangoweb\NaturalEnvironmentPlatform\media
       <Directory D:\apache\djangoweb\NaturalEnvironmentPlatform\media>  
           Require all granted  
       </Directory>

3. 启动服务

    管理员身份运行 cmd
    cd 到 Apache24/bin 目录
    执行 httpd.exe -t 检查 httpd.conf 文件是否出错
    执行 httpd.exe -k install -n natural (httpd.exe -k install -n “服务名” 注册 也可以使用httpd.exe -k uninstall -n “服务名” 来卸载)
    执行 ApacheMonitor.exe
    选择刚刚注册的服务名,点击 start
 类似资料: