0

我的 Django 应用程序部署遇到问题。我遵循了几个教程(最后一个:https ://www.youtube.com/watch?v=APCQ15YqqQ0 )来帮助我部署我的应用程序,我不明白为什么我的处理程序不起作用。这是我的 web.config 文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="Python FastCGI" 
      path="*" 
      verb="*" 
      modules="FastCgiModule" 
      scriptProcessor="c:\users\xxx\documents\github\app_folder\scripts\python.exe|c:\users\xxx\documents\github\app_folder\lib\site-packages\wfastcgi.py"
      resourceType="Unspecified" 
      requireAccess="Script" />
    </handlers>
  </system.webServer>

  <appSettings>
    <add key="PYTHONPATH" value="C:\Users\xxx\Documents\GitHub\app_folder\app" />
    <add key="WSGI_HANDLER" value="app_name.wsgi.application" />
    <add key="DJANGO_SETTINGS_MODULE" value="app_name.settings" />
  </appSettings>
</configuration>

因为我在文件夹中有我的 virtualenv,所以app_folder文件app夹包含 Django 项目。

我有这条消息要输出:

Additional information about the error  :
Module     FastCgiModule
Notification       ExecuteRequestHandler
Handler    django_handler_test
Error code     0x8007010b
URL requested      http://localhost:94/
Physical Path      C:\Users\xxx\Documents\GitHub\app_folder\app
Session opening Method     Anonyme
User Session       Anonyme

我翻译了类别名称,因为它们是法语

即使这可能不是一个好的做法,我也打算先在 Windows 计算机上部署它,然后再在服务器(Windows 或 Linux)上进行完整部署。现在,我真的需要在 Windows 环境中完成我的测试。感谢您的帮助和理解。

4

1 回答 1

0

首先,确保您使用的是 3.6 以上的 python 版本。另一个不需要是为所有用户安装 python 并在驱动器下设置安装文件夹,例如“C:\Python36”

在此处输入图像描述

在 Windows 上安装 Django:

可以使用 PIP 和以下命令安装 Djangopip install django

从用户目录获取应用程序文件夹到c盘。

启用 iis cgi 功能:

在此处输入图像描述

使用以下命令安装 wfastcgi:

pip install wfastcgi

配置 IIS 以运行 FastCGI 应用程序:

1)在 iis 中选择您的站点。

2)打开处理程序映射配置功能。

3)在其中,单击 Add Module Mapping... 操作,然后输入以下信息:

<system.webServer>
  <handlers>
    <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule"
        scriptProcessor="C:\Python37-32\python.exe|C:\Python37-32\Lib\site-packages\wfastcgi.py"
        resourceType="Unspecified" requireAccess="Script"/>
  </handlers>
</system.webServer>

4)接下来,单击请求限制按钮并编辑映射选项卡。取消选中“仅当请求映射到…时才调用处理程序”复选框(否则,IIS 将在映射它认为是 URL 请求中的子目录时出现问题):

在此处输入图像描述

在处理程序信息对话框上单击确定。然后 IIS 将要求您确认创建匹配的 FastCGI 应用程序条目,您需要确认该条目。

在 IIS 中配置 FastCGI:

1)打开iis并双击“FastCGI设置”图标

2)选择您的python可执行文件并添加以下环境变量:

名称:PYTHONPATH 值:C:appsfoo

名称:WSGI_HANDLER 值:django.core.wsgi.get_wsgi_application()

名称:DJANGO_SETTINGS_MODULE 值:django_iis_example.settings

注意:不要忘记将 iis_iusrs 和 iusr 权限分配给 python 和 site 文件夹。

https://docs.microsoft.com/en-us/visualstudio/python/configure-web-apps-for-iis-windows?view=vs-2019

于 2020-10-05T08:37:12.537 回答